WinCE应用程序开发技巧.doc_第1页
WinCE应用程序开发技巧.doc_第2页
WinCE应用程序开发技巧.doc_第3页
WinCE应用程序开发技巧.doc_第4页
WinCE应用程序开发技巧.doc_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

WINCE 禁止MFC程序窗口上的OK按钮 复制链接 打开资源文件(*.rc)(我用记事本),找到这行:EXSTYLE WS_EX_APPWINDOW | 0x80000000L.只要将这一句删除或者注释,就可以去掉OK按钮.同理,如果要添加OK键,在其后添上EXSTYLE WS_EX_APPWINDOW | 0x80000000L即可.WinCE与PC机的USB同步蓝屏解决方法方法1在安装USB驱动的时候,不使用官方的驱动,而是使用Microsoft ActiveSync下有个drivers文件夹的usb驱动。就不会蓝屏了。方法2WIN XP SP3,笔记本电脑(主要还不清楚是否有那些硬件不兼容)安装 USB下载驱动正常,但启动CE后,连接USB线到电脑无法自动安装驱动,使用提供的CE连接驱动安装完成即电脑系统蓝屏若USB线一直连接电脑,电脑重启直接蓝屏经过多次实验后,最终解决1.先连接电脑,并安装驱动,蓝屏后关机,然后拔掉USB线启动进入系统,将 INF目录下的wceusbsh.inf,wceusbsh.PNF删除,将system32driverswceusbsh.sys删除2. 不用重启,连接USB线,同步工具将会显示连接,具体不太清楚怎么回事,有空再想想,不过问题得以解决有同样情况的可以试试用回车键实现MFC对话框中TAB键控件输入焦点在控件中跳转的效果 近日在为一个数据应用写数据输入界面,大量的编辑框要想实现快速的输入就是有设计良好的符合工作流程的tab键序。相信,不少的人在使用具有大量编辑框的程序时都有这样的想法和感概。而我这个对话框界面主要输入的是数字,因此如果使用tab键作编辑框之间的跳转会在使用数字键盘时不方便。因此,就考虑了用回车键来实现tab键的功能。因为mfc对话框的特点,基于mfc对话框的对话框按下回车键会调用框架内的的onok成员函数导至退出。即使你去掉idc_ok按键的bs_defpushbutton 属性也是不行的。必须重载wm_getdefid,因为当用户按下回车键时,windows发送wm_getdefid消息来获得缺省的命令id,windows再将它作为wm_command发送,所以重载这个消息必须在高位字中返回dc_hasdefid。 如下所例:begin_message_map(cmydlg, cdialog) on_message(dm_getdefid, ongetdefid) .end_message_map()lresult cmydlg:ongetdefid(wparam wp, lparam lp) return makelong(0,dc_hasdefid); 这是一种方法,另外一种方法是在消息循环处着手处理。重载pretranslatemessage这个虚函数,将消息队列中有关键盘按下的消息给拦载下来,在框架之前处理wm_keydown消息。判断是按下回车键后,我们可以用getnextdlgtabitem 函数获得tab键序中下一个或上一个接受tab键的控件句柄。示例代码如下:bool ckeydowndlg:pretranslatemessage(msg* pmsg) if (pmsg-message = wm_keydown & pmsg-wparam = vk_return) cwnd *mwnd = getnextdlgtabitem (getfocus(); /取得当前焦点控件的下一个控件的句柄 if (mwnd) mwnd-setfocus(); /设置下一件控件得到输入焦点 return true; return cdialog:pretranslatemessage(pmsg); 但是,各位有没有注意到。这样处理之后,虽然可以在各个控件之进行输入焦点的转移。可是当一个按钮控件获得了焦点之后,也是按下回车键。以前我们习惯中或者说预料中按下该按钮的后应该执行的功能没有被执行,而焦点又跑到按钮之后的控件上去了。这就是上面代码的不足之处,虽然实现了焦点由回车键控件转移,但是按钮却不能用回车键来操作了。只以用鼠标,这和大家习惯不合。而且,在快速的数据输入中不能用回车键来按下这个按钮却要用鼠标来点击也有违当初我们要快速这样一个目的。所以,还得对以上代码做适当的修改。代码如下。 在这里增加了对当前焦点控件类的判断,即如果当前控件是按钮(button)那么就不执行焦点跳转而是构造一条wm_command消息发送给程序,让程序以为是鼠标点击了该按钮。从而执行了这个按钮具有的功能而不是什么也不做的焦点转移。bool ckeydowndlg:pretranslatemessage(msg* pmsg) if (pmsg-message = wm_keydown & pmsg-wparam = vk_return) cwnd *wnd = getfocus (); if (wnd != null) char str256; cstring classname = _t(button); getclassname (wnd-m_hwnd, str, 256); if (classname = str) uint i = wnd-getdlgctrlid (); sendmessage (wm_command, i, (lparam)wnd-m_hwnd); return true; cwnd *mwnd = getnextdlgtabitem (wnd); if (mwnd) mwnd-setfocus(); return true;return cdialog:pretranslatemessage(pmsg);Windows CE/Windows Mobile开发常见问题解答1. 怎样在一个控件获得焦点时打开软键盘?比如一个EditBox获得焦点后,这个时候自动打开软键盘,这样可以方便用户输入SIPINFO、SHSIPINFO、SIPSETINFO、SIPGETINFO里面有些参数弄不明白/隐藏输入面板 BOOL LowerSip() BOOL fRes = FALSE; SIPINFO si; memset( &si, 0, sizeof( si ) ); si.cbSize = sizeof( si ); if( SHSipInfo( SPI_GETSIPINFO, 0, &si, 0 ) ) si.fdwFlags &= SIPF_ON; fRes = SHSipInfo( SPI_SETSIPINFO, 0, &si, 0 ); return fRes; /升起输入面板 BOOL RaiseSip( void ) BOOL fRes = FALSE; SIPINFO si; memset( &si, 0, sizeof( si ) ); si.cbSize = sizeof( si ); if( SHSipInfo( SPI_GETSIPINFO, 0, &si, 0 ) ) si.fdwFlags |= SIPF_ON; fRes = SHSipInfo( SPI_SETSIPINFO, 0, &si, 0 ); return fRes; 再试试下面这些: /SHSipPreference(m_hWnd, SIP_UP);/弹出输入面板 /SHSipPreference(m_hWnd, SIP_DOWN);/隐藏输入面板(有一个时延) /SHSipPreference(m_hWnd, SIP_FORCEDOWN );/隐藏输入面板(立即) /SHSipPreference(m_hWnd, SIP_UNCHANGED ); /一般只用在调用SIP_DOWN时的的后面,使这个命令无效-2.WinCE下字符串-数字转化的问题!在VC6.0下,把#include 、#include 两个文件包括进去后,下面这段代码一点问题没有, CString str1,str2; str1=123; str2=123.4; int i; float j; i=atoi(str1); j=atof(str2); 但是在EVC3.0里面,却出现了问题:提示atof没有定义,atoi也不能正常转化。用wcstoi,wcstof, wcstol和wcstod-3. 我新拿了一个Pocket Pc,编了几个程序,但发现对话框都只能全屏显示,这是为什么?一般在Pocket PC中所有的对话框都是全屏显示,这是操作系统规定的行为。但如使用系统自定义的信息提示框,则不是全屏显示。如: Afxmessagebox所激发的提示框就是如此。 可以重载WM_INITDIALOG消息 MSDN: The DialogBox macro uses the CreateWindowEx function to create the dialog box. DialogBox then sends a WM_INITDIALOG message to the dialog box procedure. The function displays the dialog box (regardless of whether the template specifies the WS_VISIBLE style), disables the owner window, and starts its own message loop to retrieve and dispatch messages for the dialog box.就是说当对话框窗口创建完以后,会发出一个WM_INITDIALOG 消息,你只要在自己的窗口消息处理函数里对这个消息进行处理,就可以了 比如:case WM_INITDIALOG: / Create a Done button and size it. shidi.dwMask = SHIDIM_FLAGS; shidi.dwFlags = SHIDIF_DONEBUTTON | SHIDIF_SIPDOWN | SHIDIF_SIZEDLGFULLSCREEN; shidi.hDlg = hDlg; SHInitDialog(&shidi); InitOptionDlg(hDlg); return TRUE;主要就是修改shidi.dwFlags ,看看ABOUT的窗口消息处理吧 补充: SHINITDLGINFO shidi; SHINITDLGINFO shidi; 上面说的是在纯API的程序中的方法 对于MFC创建的DIALOG程序,可以这样:BOOL CXXXDlg:OnInitDialog() SHINITDLGINFO shidi; HWND hDlg = m_hWnd; / Create a Done button and size it. shidi.dwMask = SHIDIM_FLAGS; shidi.dwFlags = SHIDIF_SIPDOWN ; shidi.hDlg = hDlg; SHInitDialog(&shidi); /InitOptionDlg(hDlg); /CDialog:OnInitDialog(); -4.在eVC基于MFC的程序中如何将ToolBar栏隐藏关于ToolBar的隐藏: 首先,如果你是用MFC向导创建的工程,则默认会生成ToolBar,我要说的是,干掉它!自己来创建。:) First,声明CToolBar成员变量: CToolBar * d_pToolbar2; 然后 static UINT BASED_CODE Toolbar2Buttons = / 下面是工具栏对应菜单的ID,工具栏图标是我弄的一个Bitmap,其ID为IDR_ADD_TOOLBAR ID_FILE_NEW, ID_FILE_OPEN, ID_FILE_SAVE, ID_SEPARATOR, ID_EDIT_CUT, ID_EDIT_COPY, ID_EDIT_PASTE, ID_SEPARATOR, ID_TRANS_DICT, ID_TOOLBAR_SHOW, /这是新加入的菜单项,点击隐藏工具栏,再点击就显示工具栏 ; 然后 在CMainFrame的OnCreate()中加入: OnToolbarCreate(); 然后 void CMainFrame:OnToolbarCreate() / Should only get here if we dont have a toolbar. ASSERT(d_pToolbar2 = 0); / Create C+ object and WinAPI window. d_pToolbar2 = new CToolBar(); d_pToolbar2-Create(this, WS_CHILD | CBRS_BOTTOM | CBRS_SIZE_FIXED | CBRS_FLOATING, 0x9100); / Get bitmap and connect to tool items. d_pToolbar2-LoadBitmap(IDR_ADD_TOOLBAR); d_pToolbar2-SetButtons(Toolbar2Buttons, sizeof(Toolbar2Buttons)/sizeof(UINT); / Make toolbar dockable. d_pToolbar2-EnableDocking(CBRS_ALIGN_ANY); EnableDocking(CBRS_ALIGN_ANY); DockControlBar(d_pToolbar2); 然后 void CMainFrame:OnToolbarShow() ASSERT(d_pToolbar2 != 0);/ Query current visibility. BOOL bVisible = (d_pToolbar2-GetStyle() & WS_VISIBLE);/ Show or hide. int nShow = (bVisible) ? SW_HIDE : SW_SHOWNORMAL; d_pToolbar2-ShowWindow(nShow);/ Reconfigure remaining toolbar items. RecalcLayout();/ Store visibility state for later. d_bToolbarVisible = (!bVisible); void CMainFrame:OnUpdateToolbarShow(CCmdUI* pCmdUI) /This function is signed for checking the menu Edit|Show Toolbar pCmdUI-Enable(d_pToolbar2 != 0); int nCheck = (d_bToolbarVisible) ? 1 : 0; pCmdUI-SetCheck(nCheck); ,默认情况下ToolBar是隐藏的,点击菜单中的新加入的隐藏/显示工具栏命令即可来回切换了。-5.如何制作pocket Pc 下的安装程序?在C:Windows CE Toolswce300MS Pocket PCsupportActiveSyncwindows ce application installation 下面有例子. 也有其它第三方的安装工具,比如installshield。-6.怎样在主界面中显示一幅图片我做了一个小程序, 想在主界面中显示一幅图片,我的图片是.JPG格式的,如果需要转换,用什么工具?把JPG图转为BMP图咯,网上有不少这样的程序。 然后用LoadBitmap、SelectObject、StretchBlt等语句把BMP图显示到VIEW中。-7. 请问,在WinCE下如何截获所有鼠标和键盘的消息?wince下只能用三种钩子 #define WH_JOURNALRECORD 0 #define WH_JOURNALPLAYBACK 1 #define WH_KEYBOARD_LL 20-8.在Pocket PC下用eVC作的对话框能否做成不是全屏的?在MFC中m_bFullScreen = FALSE;-9.如何将char 类型的中文字符串转换成Unicode的字符串?MultiByteToWideChar,在仿真器中无效;你也可以通过其他方法;用wcsprintf这个函数-10. evc单文档界面中,菜单左边总有一个new,如何将其去掉?在MainFrm的OnCreate内找到这个: m_wndCommandBar.m_bShowSharedNewButton = TRUE; 把TRUE改为FALSE-11.Edit出现上下文菜单问题?近来我看了一下SDK带的Sample中的Npp,其中它有一个功能就是在EDIT上出现上下文菜单,可是当我仿照它在自己的项目中添加此功能时,即在资源中添加CONTROL ,IDC_STATIC,SIPPREF,NOT WS_VISIBLE,-10,-10、,6,6,在模拟器中正常,但在PDA中不能显示包含Edit的对话框。而Npp可以在两者正常显示。我又在Npp中增加一个对话框,也相应的改变资源,结果是在模拟器和PDA中都能正常显示。调用SHInitExtraControls()应该在构造函数,不应在OnInitDialog中。如果在OnInitDialog中调用,包含EDIT的对话框将不显示。 事实上在XXXApp:InitInstance函数中调用更好,这样只需调用一次,就万事大吉。-12. 如何将.mdb数据库转换为.cdb数据库如何将.mdb数据库转换为.cdb数据库,在没有实际PDA,只有Pocket PC Emuliation和EVB的情况下。 Pocket PC Emuliation运行时为何提示“存储器不足,无法完成操作”?此问题微软已经给出了答案。 在SDK文档中有一个叫做device的例子程序,它就是将tdb文件转化成cdb文件的,而还有一个desktop的程序,它是将mdb文件转化成tdb文件的。-13.请问如何用EVC建立和调用DLL我按照帮助中用MFC开发DLL的例子做,但是另外一个程序调用的时候的时候却出现连接错误,说找不到那个函数。后来看了EVC的例子spintest之后也是这样。和在WINDOWS下的一样 是不是LINK2001 ERROR? 你如果是隐式调用(就是不用LOADLIBRARY()的),要把你的DLL的LIB文件在PROJECT-SETTINGS-LINK-INPUT里指明。-14.编辑框如何自动会换行 ?请教,Plam中的table控件,在Wince上怎么做? 就是编辑框自动会换行.当你输入的内容超过一行,自动切换到下一行,下面的内容自动往下滚。勾选编辑控件的MultiLine,如果想输入回车换行,再勾选want renturn-15.是否在adoce,pocket access中的update语句不能执行?ADOCE不能直接执行Update语句,但ADOCE有Update方法,你可用它实现。-16.请问如何在Windows CE中实现BC+中的inport(.)与outportb(.)函数功能?CE下,可以用WINDOWS API函数来对端口操作。 比较简单。 API一般只要用到CreateFile(打开端口,串口操作和文件操作只有一点不同就是打开方式不同,所以第三个参数要用 OPEN_EXISTING ) COMMTIMEOUTS、DCB两个结构是存放设置参数的,可以改 WriteFile、WriteFile(读写端口) 因为串口通讯用的是异步通讯,所以下面两句比较重要 SetCommMask(指定监视的端口事件) WaitCommEvent(等待端口事件)-17. 如何显示一个对话框让用户选择一个目录而不是文件没有标准的函数处理这个,你只好自己实现活使用第三方的解决方案。-18.有没有办法(API)激活或禁止电源保存模式?参看SystemIdleTimerReset()的安装文档。创建一个包含象睡眠的无限循环的线程,然后调用SystemIdleTimerReset()。也许有一种中断线程的办法就是程序退出。-19. Windows CE的文件名最小程度是多少?在windef.h定义了MAX_PATH,普遍应该是260个字符。20. 我使用CFileDialog创建了一个浏览按钮,默认目录始终是显示All Folders和在My DeviceMy do*ents下。怎样改变初始目录到My Device。使用fileDlg.m_ofn.lpstrInitialDir = TEXT(file:/My/ Device);,但是没有改变默认显示的目录。lpstrInitialDir指向一个指定初始文件目录的字符串。如果为NULL,将使用系统的根目录。尽量尝试一下lpstrInitialDir为NULL。-21.在Pocket PC任务栏上可能有X和OK按钮吗?不可能,至少没有象WisBar的第三方工具。-22.如何禁止用户改变日期和时间?有可能实现吗?你可能用自己的程序替代windowsclock.exe,但是,它们可以通过另外的程序处理这个。同样,在同步时ActiveSync改变设备的时间与PC匹配。-23.我有一个xscal cpu的ipaq 3970设备,但是在eMbedded Visual C+ 3.0上没有目标类型。我应该在EVC3.0上使用什么类型。这个问题也发生在安装程序Cabwiz.exe上。你可以使用ARM类型。XScal基于ARM体系。-24.如何使程序在后台运行?最小化程序将使程序进入后台,因此只要在程序启动时最小化,那么它将运行在后台。补充:还可以做成service。-25.我准备去掉SIP按钮。我在OnInitDialog事件中使用SHFullScreen。然而SIP按钮仍然可见,忘记做什么了吗?代码如下:/ SHFullScreen fails if dialog box is not foreground. SetForegroundWindow(); / Go to the full screen mode SHFullScreen(m_hWnd, SHFS_HIDESIPBUTTON | SHFS_HIDESTARTICON);不能在OnInitDialog中使用SHFullScreen,因为对话框还没有可见。你应该传递一个自定义消息,在那个消息调用这个函数。也许下面这段代码会有用:void PFCSipButtonShow( BOOL bShow ) HWND hWnd = :FindWindow( _T( MS_SIPBUTTON ), NULL ); if (hWnd = NULL) return;if (bShow) :ShowWindow( hWnd, SW_SHOW ); else :ShowWindow( hWnd, SW_HIDE ); / PFCSipButtonShow-26. 如何在Pocket PC2002模拟器上安装Pocket PC程序?PPC2002模拟器没有模拟ARM处理器,因此你必须有x86 CPU的二进制文件和相应的安装程序。只需使用文件浏览器复制cab文件到模拟器,然后执行它。商业程序的安装包通常不包含x86的二进制程序。如果你没有x86处理器的程序发布版本,你不能做这个安装。如果程序是你自己的,你可以创建一个x86的版本,之后创建一个安装CAB。-27.如何在eVC程序中读取普通的图标文件?在PC程序中使用ExtractIconEx(),但是在Pocket 设备好象不工作。缺少了什么?PC图标文件在Pocket PC环境是非法的?或者需要转换格式?不幸的是,在Pocket PC上没有API去读取图标。因此,你不得不手工解析图标文件。-28. 如何绘制一个透明的圆呢?我想使用eVC+和GDI在Pocket PC 2002上绘制一个圆。我使用它绘制了直线,它处理的很好:hbrOld =(HBRUSH) SelectObject(hDC, CreatePatternBrush(RGB(0,255,0); hpnOld =(HPEN) SelectObject(hDC, CreatePen(PS_SOLID, 2, RGB(255,0,0); Ellipse( hDC, 10, 10, 20, 20); DeleteObject( SelectObject (hDC, hbrOld) ); DeleteObject( SelectObject (hDC, hpnOld) );但是如何绘制一个透明的圆呢?有PS_NULL这样画笔类型吗?可以使用GetStockObject()得到一个NULL_BRUSH或HOLLOW_BRUSH(这两个是相同的)。然后用SelectObject选择它,就象你已经做的那样。-29.假定我知道程序的名称,关闭运行着的eVC的程序使用什么API?如果你知道程序的名称,并且假定与主窗口的名称相同,那么你可以使用FindWindow得到那个窗口的句柄,然后传送WM_CLOSE消息到那个窗口。HWND hwnd = FindWindow(NULL, _T(APPLICATION NAME); if ( hwnd) PostMessage(hwnd, WM_DESTROY, 0, 0);-30.如何从PC设置PDA的时间?最简单的办法是写一个自定义的RAPI函数,通过CeRapi调用设备的SetSystemTime.-31.怎样使用WriteBinary,我不明白第二个参数(LPBYTE):BOOL CVORegistry:WriteBinary(LPCTSTR pcszKey, LPBYTE pData, DWORD cbData)第二个参数是指向包含你想写到注册表的二进制数据的缓冲。BYTE data = 0x12, 0x34, 0x56, 0x78, 0x90, 0xab, 0xcd, 0xef ; extern CVORegistry reg; reg.WriteData(_T(BinaryData), data, sizeof(data);-32.Windows CE支持钩子API吗?这样我们可以监视需要的时间。如果支持,用法也象Windows 2000那样吗?坏消息:CE不支持钩子。系统不支持,我们还是可以想其他办法的-33.我不能使用Pocket PC上CDialog的TitleBar,我能用静态文本框控件替代,使之与TitleBar相似。有办法显示TitleBar吗?大多数Pocket PC上的对话框是全屏的,没有自己的主题栏,而是使用系统任务栏。你可以创建一个非全屏对话框(象消息框那样)。-34.如何在程序中关闭(suspend)Pocekt PC?方法1:虚拟关机键 :keybd_event(VK_OFF, 0, 0, 0); :keybd_event(VK_OFF, 0, KEYEVENTF_KEYUP, 0);方法2:调用未公开函数PowerOffSystem() extern C _declspec(dllimport) void PowerOffSystem();-35.如何在程序中重启(soft reset)Pocket PC?#include #define IOCTL_HAL_REBOOT CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS) extern C _declspec(dllimport) BOOL KernelIoControl( DWORD dwIoControlCode, LPVOID lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned); BOOL ResetPocketPC() return KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL); 2. -36. 如何在程序中硬启动(hardware reset)Pocekt PC?注意:使用此段代码会将您的Pocket PC的用户数据全部清空。#include #define IOCTL_HAL_REBOOT CTL_CODE(FILE_DEVICE_HAL, 15, METHOD_BUFFERED, FILE_ANY_ACCESS) extern C _declspec(dllimport)void SetCleanRebootFlag(void); extern C _declspec(dllimport) BOOL KernelIoControl( DWORD dwIoControlCode, LPVOID lpInBuf, DWORD nInBufSize, LPVOID lpOutBuf, DWORD nOutBufSize, LPDWORD lpBytesReturned); BOOL HardResetPocketPC() SetCleanRebootFlag(); return KernelIoControl(IOCTL_HAL_REBOOT, NULL, 0, NULL, 0, NULL); -37.以下方法信息不全,无法使用:1.系统不认识VK_OFF2.使用哪个dll 和 lib文件?如何在程序中关闭(suspend)Pocekt PC?方法1:虚拟关机键 :keybd_event(VK_OFF, 0, 0, 0); :keybd_event(VK_OFF, 0, KEYEVENTF_KEYUP, 0);方法2:调用未公开函数PowerOffSystem() extern C _declspec(dllimport) void PowerOffSystem();关闭(suspend) 方法1: /虚拟关机键 :keybd_event(VK_OFF, 0, 0, 0); :keybd_event(VK_OFF, 0, KEYEVENTF_KEYUP, 0);方法2: /调用未公开函数PowerOffSystem() extern C _declspec(dllimport) void PowerOffSystem();PocketPC基于对话框的MFC应用程序全屏方法 作者:Zhiheng 日期:2009-09-091、在OnInitDialog()中加入如下语句:RECT rc;GetWindowRect(&rc);rc.top -= 26; 1、在OnInitDialog()中加入如下语句:RECT rc;GetWindowRect(&rc);rc.top -= 26;MoveWindow(rc.left,rc.top,rc.right,rc.bottom,FALSE); /上移26像素SHFullScreen(this-m_hWnd,SHFS_HIDETASKBAR); /隐藏任务栏该段代码为:将整个窗口向上平移26个像素以到达屏幕顶部,同时使用SHFullScreen()隐藏任务栏。或者:先把该Dialog的TitleBar属性置为false,然后在OnInitDialog()函数中加入如下语句:int iFullWidth = GetSystemMetrics(SM_CXSCREEN); int iFullHeight = GetSystemMetrics(SM_CYSCREEN);:SetWindowPos(this-m_hWnd, HWND_TOPMOST, 0, 0, iFullWidth, iFullHeight, SWP_NOOWNERZORDER|SWP_SHOWWINDOW);2、由于调用输入法面板(Input Panel)时,任务栏会再次出现(依据MSDN,在Input Panel活动时会发送WM_SETTING_CHANGE和

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论