您的位置:首页 > 其它

VC设置createwindow方法生成的form, button的bitmap背景图

2011-09-30 15:37 531 查看
前两天做了一个notify window的提示窗口,现整理纠结出来的主要方法。

1,设置window form的背景图(IDI_NOTIFY_BG为resource.rc文件中定义的bitmap文件)

MSG msg;
HWND hWnd;
wstring szTitle = L"Test";
wstring szWindowClass = L"Test";
WNDCLASSEX wcex={0};
wcex.cbSize = sizeof(WNDCLASSEX);
wcex.style            = CS_HREDRAW | CS_VREDRAW;
wcex.lpfnWndProc    = (WNDPROC)NotifyWndProc;
wcex.hInstance        = 0;
HBITMAP hbmp;
hbmp = LoadBitmap((HINSTANCE)GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_NOTIFY_BG));
wcex.hbrBackground    = (HBRUSH)CreatePatternBrush(hbmp);
wcex.lpszClassName    = szWindowClass.c_str();
wcex.hIcon            =0;
wcex.hCursor        =LoadCursor(NULL, IDC_ARROW);
wcex.lpszMenuName    =0;
wcex.hIconSm        =0;
RegisterClassEx(&wcex);

hWnd = CreateWindow(szWindowClass.c_str(), szTitle.c_str(), WS_POPUP,
(scrWidth - 205 ),(scrHeight - tbheight - 105), 200, 100, g_hMainWnd, NULL, 0, NULL);


2,设置button的背景图

HWND hbtn = CreateWindow(TEXT("BUTTON"), TEXT(""),
WS_CHILD | WS_VISIBLE | BS_BITMAP | BS_FLAT ,
180, 0, 19,
17, hWnd,
(HMENU) 0x8801, // BUTTON ID
NULL, NULL );
HBITMAP hbmp1;
hbmp1 = LoadBitmap((HINSTANCE)GetModuleHandle(NULL), MAKEINTRESOURCE(IDI_NOTIFY_CLOSEBTN));
::SendMessage(hbtn,   BM_SETIMAGE,   (WPARAM)IMAGE_BITMAP,   LPARAM(hbmp1));
一些细节要注意到,比如BUTTON中BS_BITMAP和SENDMESSAGE的 IMAGE_BITMAP的这种标记。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: