/* <textarea name="code" class="c++"> 这里试一下代码按源格式粘贴的方法 //http://blog.csdn.net/qyp1314/article/details/7321384 */ #include #define CLASS_NAME TEXT("Vonger")#define IDB_BUTTON1 1HINSTANCE hInst;LRESULT _stdcall TestProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam){HWND hButton1;switch(uMsg){case WM_CREATE:{HRGN hRgn1 = ::CreateRectRgn(0, 0, 100, 100); //为底层HRGN hRgn2 = ::CreateRoundRectRgn(50, 50, 300, 300,20,20); //为顶层 ->后建的,理解为在前一层基础上再铺一层::CombineRgn(hRgn1, hRgn1, hRgn2, RGN_OR);::SetWindowRgn(hWnd, hRgn1, TRUE);::DeleteObject(hRgn1);::DeleteObject(hRgn2);}break;case WM_LBUTTONDOWN:::SendMessage(hWnd, WM_NCLBUTTONDOWN, HTCAPTION, 0);break;case WM_DESTROY:::PostQuitMessage(1);break;} return ::DefWindowProc(hWnd, uMsg, wParam, lParam);}int _stdcall WinMain(HINSTANCE, HINSTANCE, LPSTR, BOOL){ WNDCLASS wc = {0}; wc.lpszClassName = CLASS_NAME; wc.lpfnWndProc = TestProc; wc.hbrBackground = (HBRUSH)CreateSolidBrush(RGB(141,198,63)); wc.hCursor = ::LoadCursor(NULL, IDC_ARROW); ::RegisterClass(&wc); HWND hWnd = ::CreateWindow(CLASS_NAME, CLASS_NAME, WS_POPUP|WS_VISIBLE, 100, 100, 300, 300, 0, 0, 0, 0); if(hWnd == NULL) return 1; MSG msg = {0}; while(::GetMessage(&msg, 0, 0, 0)) ::DispatchMessage(&msg); return 0;}