VS2010 学习编程笔记改变窗口背景颜色

it2023-06-19  66

( 学习笔记) VS2010 改变窗口背景颜色

#define IDM_BLACK 42801 #define IDM_WHITE 42802 #define IDM_RED 42803 #define IDM_ORANGE 42804 #define IDM_YELLOW 42805 #define IDM_GREEN 42806 #define IDM_BULE 42807 #define IDM_MAGENTA 42808 #define IDM_LTGREEN 42809 #define IDM_LTBLUE 42810 #define IDM_LTRED 42811 #define IDM_LTGRAY 42812

.RC IDC_MENU MENU BEGIN POPUP “Ba&ckground” BEGIN MENUITEM “BLAC&K\tF1”, IDM_BLACK MENUITEM “&WHITE\tF2”, IDM_WHITE MENUITEM “&RED\tF3”, IDM_RED MENUITEM “&ORANGE\t F4”, IDM_ORANGE MENUITEM “&YELLOW\tF5”, IDM_YELLOW MENUITEM “GREE&N\tF6”, IDM_GREEN MENUITEM “&BULE\tF7”, IDM_BULE MENUITEM “&MAGENTA\tF8”, IDM_MAGENTA MENUITEM SEPARATOR MENUITEM “Lt GR&EEN\tF9”, IDM_LTGREEN MENUITEM “Lt BL&UE\tF10”, IDM_LTBLUE MENUITEM “Lt RE&D\tF11”, IDM_LTRED MENUITEM “Lt GR&AY\tF12”, IDM_LTGRAY END END IDC_MENU ACCELERATORS BEGIN VK_F1, IDM_BLACK, VIRTKEY, NOINVERT VK_F2, IDM_WHITE, VIRTKEY, NOINVERT VK_F3, IDM_RED, VIRTKEY, NOINVERT VK_F4, IDM_ORANGE, VIRTKEY, NOINVERT VK_F5, IDM_YELLOW, VIRTKEY, NOINVERT VK_F6, IDM_GREEN, VIRTKEY, NOINVERT VK_F7, IDM_BULE, VIRTKEY, NOINVERT VK_F8, IDM_MAGENTA, VIRTKEY, NOINVERT VK_F9, IDM_LTGREEN, VIRTKEY, NOINVERT VK_F10, IDM_LTBLUE, VIRTKEY, NOINVERT VK_F11, IDM_LTRED, VIRTKEY, NOINVERT VK_F12, IDM_LTGRAY, VIRTKEY, NOINVERT END

.cpp … HGDIOBJ hBrush = (HBRUSH)NULL; static WORD wColor; static int wColorValue[12][[3]]={0,0,0,/黑/255,255,255,/白/255,0,0,/红/255,96,0,/橙/255,255,0,/黄/0,255,0,/绿/ 0,0,255,/蓝/255,0,255,/洋红/128,255,0,/浅绿/0,255,255,/浅蓝/255,0,159,/浅红/180,180,180/浅灰/}; … case IDM_BLACK: case IDM_WHITE: case IDM_RED: case IDM_ORANGE: case IDM_YELLOW: case IDM_GREEN: case IDM_BULE: case IDM_MAGENTA: case IDM_LTGREEN: case IDM_LTBLUE: case IDM_LTRED: case IDM_LTGRAY: hmenu = GetMenu(hWnd); CheckMenuItem(hmenu,wColor,MF_UNCHECKED); //菜单去掉对勾标记 wColor= LOWORD(wParam); CheckMenuItem(hmenu,wColor,MF_CHECKED); //菜单打标记勾 hBrush = CreateSolidBrush(RGB (wColorValue[wColor-IDM_BLACK][0],wColorValue[wColor-IDM_BLACK][1],wColorValue[wColor-IDM_BLACK][2])); SetClassLong(hWnd,GCL_HBRBACKGROUND,(LONG)hBrush); InvalidateRect(hWnd,NULL,TRUE); break; …

最新回复(0)