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

前两天做了一个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的这种标记。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值