English 中文(简体)
视窗 6.1 - 在软件键板展上安装超文本视窗
原标题:Windows Mobile 6.1 - Resizing HTMLControl s Window on Soft Keyboard Show/Hide

因此,这是一个共同的问题,已在几个地方处理,但并非专门对视窗移动电话6.1的超文本控制。

因此,我的问题是:

  • A WC_HTML HTML Control created as a child window of a Windows Mobile application window.
  • HTML Control serves html pages with editable fields.
  • When the full page is full of editable fields and the user is using the soft keyboard, for the fields at the bottom of the page, the soft keyboard overlays a few fields.

我明确忽略了的是,根据软键板的公开/纪念活动,将窗户转成正。

我已经尝试了什么。

第二种做法造成无法解释的问题——这里指的是我所看到的问题。

  1. 如果将视窗的移动式电离层移动式电离层移动式电离层电离层电离层电离层为(si.fdwFlags=0x00003),MoveWindow(>)>呼吁将窗户转至较小可见地区(在键盘上登后), 还有另一个信息(自动使用)——可能是因为<代码>MoveWindow(<>和软件键板关闭,窗户被重新布满。 在拆解后,我发现,在开放软键盘时,收到的信息是:首先<代码>0x00003,然后是下一个<代码>0x00000002 (SIPF_DOCKED)。

  2. 第1号事件发生后,有时现场无法从触摸屏中点击(看线对外地的注意),但可以使用“方向”或软键盘向外地航行。 因此,由于第1号问题,这个问题是一个大问题,因为第1号问题突出了关键板,然后自动隐藏。 虽然我能够利用纽特州通过武力收回软钢板(由于这一变化似乎失去了汽车角)。

是否有人面临这一问题? 我对每一个使用Windows 6.1专业人员超文本Control的人都抱有希望,他们必须走到同一问题上。

UPDATE - 22Mar2011-11:27AM Here, my parent window doesn t handle the WM_SETFOCUS or WM_KILLFOCUS methods, instead the child HTML Control (WC_HTML) would probably handle them. The worry here is that the Parent Window HWND s messaging loop gets the WM_SETTINGSCHANGE message which needs to be translated to the child window. I ve also tried to do exactly like the HandleSIP Windows Mobile SDK sample which does by having the SHACTIVATEINFO object memset() each time a message is received - unlike previously where it was stored globally and the memset() is done once before the window is created or in WM_CREATE

case WM_CREATE : {
    memset(&sai, 0, sizeof(SHACTIVATEINFO));
    break;
}
case WM_ACTIVATE:
    if (SPI_SETSIPINFO == wParam){
        memset(&sai, 0, sizeof(SHACTIVATEINFO));
        SHHandleWMActivate(webControlHWND, wParam, lParam, &sai, 0);
    }
    break;
case WM_SETTINGCHANGE: {
    if (SPI_SETSIPINFO == wParam){
        memset(&sai, 0, sizeof(SHACTIVATEINFO));
        SHHandleWMSettingChange(webControlHWND, wParam, lParam, &sai);
    }
    break;
}

针对双向窗口和超文本控制网的双向工作,主机将可视的领域(无窗户转户)推向后方,窗户则不接受任何其他信息(ung)。

最佳回答

因此,我实际上找到了解决这一问题的工作。 视窗移动电话中有一些微粒,如果屏幕上有超文本和斜线,则会hang上屏幕;一页。 因此,最终解决办法是

1) Stick to handling WM_SETTINGCHANGE message only when the phone doesn t have a physical keyboard. If it has, then I d let my softkeyboard overlap the visible fields. Please note that if the device has a Physical keyboard, the softkeyboard doesn t pop out by default unless brought up explicitly and it retains that behavior after that..

case WM_SETTINGCHANGE: {
   SIPINFO si;
   switch( wParam ) 
   {
       case SPI_SETSIPINFO: {
       memset( &si, 0, sizeof( si ) );
       si.cbSize = sizeof( si );
       if( SHSipInfo( SPI_GETSIPINFO, 0, &si, 0 ) ) {
           RECT rcMenuBar;
           // Get the size of the menu bar
           GetWindowRect(g_hWndMenuBar, &rcMenuBar);
           // Keyboard opens up
           if(si.fdwFlags == 0x00000003) { 
           } else if(si.fdwFlags == SIPF_DOCKED || si.fdwFlags==10) { 
                 // keyboard closes down - weird that this msg comes when keyboard is closed instead of SIPF_OFF
                 // visible area above menu bar
                 si.rcVisibleDesktop.bottom -= (rcMenuBar.bottom - rcMenuBar.top);
           }
           MoveWindow(webControlHWND, 0, 0, (si.rcVisibleDesktop.right - si.rcVisibleDesktop.left), (si.rcVisibleDesktop.bottom - si.rcVisibleDesktop.top), TRUE);          

        }
     break;
   }
 }
 break;
 }

2) Inject a 1 page long transparent PNG If the phone doesn t have physical keyboard, then ensure to inject a "transparent 1 page long PNG" at the end of each of the HTML to be displayed. I know most of the folks can t do this as the HTML originates from some where else. But this is what I did and it works now. This is only to get rid of the hang issue that was happening other wise. This will ensure that all the pages have scroll bar w/o bothering about the content. The downside is the user can scroll through the empty space at the bottom (although will not affect anything).

p.s - It was a lucky find and I don t really know why MS has such a lame bug either. While I was testing my app with a longer HTML version it always worked and my real-tests didn t. That s when I tried the empty PNG at the end and it did work. :)

问题回答

暂无回答




相关问题
Using maps on Windows Mobile

I m experimenting with maps on different mobile platforms. Getting Google Maps to work on Android was easy, following this tutorial. Getting the same to work on Windows Mobile is a different matter. ...

Build a Bitmap filling it with a smaller image

I m developing a Windows Mobile application with C# and .NET Compact Framework. I want to fill a Bitmap with an image that it s smaller. To fill this new Bitmap I want to repeat the image ...

Bing maps used offline: cache tiles from its web service

I m developing a Windows Mobile application that uses Bing Maps Web Service to show user s position on it. I think I have a problem if the user hasn t got internet service on his mobile, so I think I ...

Determine Mobile Internet Explorer version

I need to determine the version of Mobile Internet Explorer on a Windows Mobile 6.1 device. So that I can report the same user-agent string as is being used by Mobile Internet Explorer. The user-...

Custom listview control for windows mobile in c#

I need to develop a custom listview control (ie, i need two labels and a progress bar in each list item) . I am new to windows mobile so please help me with code samples.

In Which Languages Can I Develop For Windows Mobile?

Today my new HP iPAQ was delivered at my home, but now I want to know two things before I start any project: In which languages can I develop for it(Windows Mobile 5)? Where can I download this ...

热门标签