资源描述:
《vc中picture控件动态换背景及控件被picture盖住解决方案》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、VC中picture控件动态换背景及控件被picture盖住解决方案VC中的picture控件实际是一个CStatic类型,知道了这点,第一个问题就很容易了。CStatic*ps=(CStatic*)GetDlgItem(IDC_STATIC);//picture是CStatic类型CBitmapcb;cb.LoadBitmap(IDB_TESTGROUND);ps->SetBitmap(HBITMAP(cb));〃强制转为HBITMAP使用这个picture控件时有个问题,就是有些控件可能会被picture里设置好的背景图给盖住。解决方法是俺
2、在网上看到的,试验成功,如下:打开资源文件(就是项目的・rc文件,然后找到对应对话框的定义:比如我这个的:IDD_PICTURE_DIALOGDIALOGEX0,0,529,400STYLEWS_POPUP
3、WS_VISIBLEEXSTYLEWS_EX_APPWINDOWFONT9,”宋体”BEGINCONTROL150,IDC_STATIC,nStaticH,SS_BITMAP,0,0,533,400CONTROL”Listl”,IDC_LISTl,”SysListView32”,LVS_REPORT
4、WS.BORDER
5、WS_TABSTOP
6、,27,121,203,162CONTROL"Progressln,IDC_PROGRESS1,nmsctls_progress32n,WS_BORDER,102,320,316,6,WS_EX_TRANSPARENTEND在这个begin与endZ间定义的就是对话框的控件,调整这些语句的位置,越是在前面的越是在底层。这个是直接方法,根本方法,不过在操作上有个简便方法,就是在编辑界面全选所有的控件CTRL+A,然后按住SHIFT,取消对图片控件的选择,将剩下的控件剪切,再粘贴,这样图片控件就到了最底层了,看资源文件也已经对应的被改好了。winc
7、e中的hook(钩子)用法Hook(钩子)是一种在消息到达目标窗口前进行截获的技术。使用钩子主要使用以下三个函数SetWindowsHookEx:创建钩子CallNextHookEx:将消息传给钩子链屮的下一个钩子UnhookWindowsHookEx:释放钩子对于创建钩子的函数SetWindowsHookEx,MSDN给出其原形如下:HHOOKSetWindow$HookEx(intidHook,//typeofhooktoinstallHOOKPROCIpfn,//addressofhookprocedureHINSTANCEhMod,//
8、handletoapplicationinstanceDWORDdwThreadld//identityofthreadtoinstallhookfor);这些在windows上面使用没有问题,但是在说明的最后,关于平台限制的地方,可以清楚的看到以下文字:WindowsCE:Unsupported.也就是说,wince并不支持钩子。但是是不是不支持呢?只能说不直接支持钩子,用别的方法也是可以使用钩子函数的,那就是直接获収钩子函数地址,然后调用的方法。g_hHookApiDLL=LoadLibrary(_T(Mcoredll.dlln));Set
9、WindowsHookEx=(_SetWindowsHookExW)GetProcAddress(g_hHookApiDLL,_T(HSetWindowsHookExWM));如法炮制,可以获得其他两个函数的地址,有了这三个函数的地址,就可以类似这样使用了:g_hlnstalledLLKBDhook=SetWindowsHookEx(WH_KEYBOARD_LL,keyboardProc,hlnstance,0);关于wince的钩子,有以下总结,不尽不对Z处,请给E狐指正:1参看WinCE的winbase.h,wince下可以使用以下三种:#
10、defineWH_JOURNALRECORD0#defineWHJOURNALPLAYBACK1#defineWH_KEYBOARD_LL20其中最有用的就是键盘钩子了。Wince里面定义其为20,而不是windows里面的14,因此调用时要注意。2关于键盘钩子回调函数keyboardProc,它里面的几个参数并不像MSDN里面提到的KeyboardProc那样:LRESUUTCALLBACKKeyboardProc(intcode,//hookcodeWPARAMwParam,//virtual-keycodeLPARAMIParam//ke
11、ystroke-messageinformation按照说明,wParam应该存的是虚拟键信息。然而事实上,这三个函数中,第二个是用來指示是键按下还是