《win32编程笔记》由会员分享,可在线阅读,更多相关《win32编程笔记(5页珍藏版)》请在金锄头文库上搜索。
1、.个人总结非常有用的经验个人总结非常有用的经验一、经验总结一、经验总结1 1、WIN32WIN32 控件加背景图片控件加背景图片caseWM_PAINT:HBITMAPhbm;BITMAPbminfo; hbm = LoadBitmapGetModuleHandle,MAKEINTRESOURCE;GetObjecthbm, sizeof, &bminfo;PAINTSTRUCTps;HDC dc = BeginPaint;HDC memdc = CreateCompatibleDC; SelectObject; :StretchBltdc, 0, 0, 990, 404, memdc, 0,
2、 0, bminfo.bmWidth, DeleteDC; EndPaint;/BitBlt;bminfo.bmHeight, SRCCOPY;returnTRUE;2 2、WIN32WIN32 窗体半透明窗体半透明#defineWS_EX_LAYERED 0x00080000/扩展样式#defineWS_EX_LAYERED 0x00080000hwnd = CreateWindowExWS_EX_LAYERED,lpszClassName,lpszTitle,WS_CAPTION | WS_SYSMENU,CW_USEDEFAULT, CW_USEDEFAULT,iWindowWidth,
3、 iWindowHeight,1 / 5.NULL,NULL,typedefBOOL ;lpfn g_pSetLayeredWindowAttributes;/ 获取函数 SetLayeredWindowAttributes 在User32.dll中的指针HMODULE hUser32 = GetModuleHandle;g_pSetLayeredWindowAttributes = GetProcAddress;hwnd, RGB, 215, 2;hInstance,NULL;注注意意:如如果果是是从从资资源源文文件件中中创创建建的的窗窗口口, ,要要在在资资源源文文件件*.rc*.rc 扩
4、扩展展样样式式中中加加上上|0x00080000|0x000800003 3、WIN32WIN32 修改窗体样式修改窗体样式int gwl_style=-16 ;long oldstyle ;oldstyle=GetWindowLong;SetWindowLong;4 4、按钮加背景图片、按钮加背景图片caseWM_PAINT:HBITMAPhbm;BITMAPbminfo; hbm = LoadBitmapGetModuleHandle,MAKEINTRESOURCE;GetObjecthbm, sizeof, &bminfo;PAINTSTRUCTps;HDC dc = BeginPain
5、t;HDC memdc = CreateCompatibleDC; DeleteDC; SelectObject; BitBlt;2 / 5. EndPaint;break;5 5、COMBOXCOMBOX控件下拉大小的设置控件下拉大小的设置点击如图倒三角然后拖动边框6 6、从、从 CodeBlocksCodeBlocks下的下的 GUIGUI 程序移植到程序移植到 VC6.0VC6.0 注意事项注意事项要增加如下代码/ 开启视觉效果#pragmacomment#pragmacomment7 7、为控件设置文本、为控件设置文本SetWindowTextGetDlgItem, 0x13;SetW
6、indowTextGetDlgItem, 0x19;SetWindowTextGetDlgItem, 0;8 8、WIN32WIN32 下下 RadioBoxRadioBox默认选中默认选中SendDlgItemMessage;/把 RadioBox RDCHAR 设置为选中注意注意:在设置为默认选中的时候要把单选按钮分组。方法方法:把需要分组的按钮放到一个 groupbox 中,然后把其中的一个 RadioBox的属性设为组9 9、减小生成的、减小生成的 EXEEXE 体积体积#pragmacomment /自定义函数入口3 / 5.#pragmacomment/自定义对齐方式#pragma
7、comment #pragmacomment/ 优化选项#pragmacomment#pragmacomment#pragmacomment / 合并区段#pragmacomment#pragmacomment#pragmacomment1010、判断、判断 RadioboxRadiobox是否选中的方法是否选中的方法#defineButton_GetCheck SNDMSG, BM_GETCHECK, 0L, 0Lvoid CheckDisplayStationUINT discheck;discheck = Button_GetCheckGetDlgItem;DisplayHex;Disp
8、layHex;if /16进制显示if /字符显示1111、ComboxCombox增加数据项增加数据项SendDlgItemMessagehwndDlg, SETCOMNO, CB_ADDSTRING, 0, ;1212、字符转、字符转 1616 进制进制 char szBuf10;/缓存区GetWindowTextGetDlgItem, szBuf, 10;4 / 5.int t1, t2;if /过滤数据if = a&szBuf1/小写字母SendChar;t2 = szBuf1 - 55;t2 = szBuf1 - 48;t2 = szBuf1 - 87;t1 = szBuf0 - 55;t1 = szBuf0 - 48;t1 = szBuf0 - 87;= A&szBuf0 | = a&szBuf0 |&= A&szBuf1 | = a&szBuf1 = 0&szBuf0 | = 0&szBuf1 if = a&szBuf0/小写字母elseif = 48 & szBuf0 /数字elseif = A&szBuf0 /大写字母elseif = 48 & szBuf1 /数字else/大写字母5 / 5