因此,这是一个共同的问题,已在几个地方处理,但并非专门对视窗移动电话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.
我明确忽略了的是,根据软键板的公开/纪念活动,将窗户转成正。
我已经尝试了什么。
<>First Approach - Using global known
SHACTIVATEINFOsai;
Object which is initialized before theother protocoldow is establishing which is subsequently adopted on to the WM_ SETatingCHANGE and WM_ACTIVATE methods of WndProc (as amended here。 这并没有产生预期的效果。 我曾尝试过这两种情况,即通过母HWND(如建议)和网络控制S HWND,但都没有发生。case WM_ACTIVATE: SHHandleWMActivate(hWnd, wParam, lParam, &sai, 0); break;
case WM_SETTINGCHANGE: SHHandleWMSettingChange(hWnd, wParam, lParam, &sai); break;
Second Approach - 还尝试通过使用
条码核对活动,人工检索窗口;,然后使用 si.fdwFlags
,以确定软键板是否被隐藏或未予隐藏。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) { MoveWindow(webControlHWND, 0, 0, (si.rcVisibleDesktop.right - si.rcVisibleDesktop.left), (si.rcVisibleDesktop.bottom - si.rcVisibleDesktop.top), TRUE); } else if(si.fdwFlags == SIPF_DOCKED) { // 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; }
第二种做法造成无法解释的问题——这里指的是我所看到的问题。
如果将视窗的移动式电离层移动式电离层移动式电离层电离层电离层电离层为
(si.fdwFlags=0x00003)
,MoveWindow(
>)>呼吁将窗户转至较小可见地区(在键盘上登后), 还有另一个信息(自动使用)——可能是因为<代码>MoveWindow(<>和软件键板关闭,窗户被重新布满。 在拆解后,我发现,在开放软键盘时,收到的信息是:首先<代码>0x00003,然后是下一个<代码>0x00000002 (SIPF_DOCKED)。第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)。