改變顏色的Windows表單

來源:互聯網
上載者:User

#include <windows.h><br />LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);<br />int WINAPI WinMain(<br /> HINSTANCE hInstance,<br /> HINSTANCE hPrevInstance,<br /> LPSTR lpCmdLine,<br /> int nCmdShow)<br />{<br />HWND hWnd;<br />WNDCLASS wndclass;<br />static TCHAR szAppName[] = TEXT ("HELLO") ;<br />MSG msg;<br />BOOL bRet;</p><p>wndclass.style=CS_HREDRAW | CS_VREDRAW;<br />wndclass.lpfnWndProc=(WNDPROC)WndProc;<br />wndclass.cbClsExtra=0;<br />wndclass.cbWndExtra=0;<br />wndclass.hInstance = hInstance ;<br />wndclass.hIcon=LoadIcon(NULL, IDI_APPLICATION);<br />wndclass.hCursor=LoadCursor(NULL, IDC_ARROW);<br />wndclass.hbrBackground=(HBRUSH) GetStockObject (WHITE_BRUSH);<br />wndclass.lpszMenuName=NULL;<br />wndclass.lpszClassName=szAppName;</p><p>if (!RegisterClass (&wndclass))<br />return 0 ;</p><p>hWnd = CreateWindow(szAppName,<br />TEXT ("HELLO"),<br />WS_OVERLAPPEDWINDOW,<br />0,<br />0,<br />800,<br />600,<br />NULL,<br />NULL,<br />hInstance,<br />NULL);</p><p>if (!hWnd)<br />return 0;</p><p>ShowWindow(hWnd, nCmdShow);<br />UpdateWindow(hWnd);</p><p>bRet=TRUE;<br />while (bRet)<br />{<br />bRet=GetMessage(&msg, NULL, 0, 0);<br />if(bRet==-1)<br />return 0;//error<br />if(bRet)<br />{<br />TranslateMessage(&msg);<br />DispatchMessage(&msg);<br />}<br />}<br />return msg.wParam;<br />}<br />LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam)<br />{<br />PAINTSTRUCT ps;<br />HDC hdc;<br />RECTrect ;<br />static HBRUSH hBrush;<br />static BYTE Red,Green,Blue;<br />static DWORD color;</p><p>switch(msg)<br />{<br />case WM_CREATE:<br />color=0;<br />SetTimer (hwnd, 1, 10, NULL) ;<br />break;<br />case WM_TIMER:<br />color=color+1;<br />if(color>0x00FFFFFF)<br />color=0;<br />InvalidateRect (hwnd, NULL, FALSE) ;<br />break;<br />case WM_PAINT:<br />hdc = BeginPaint(hwnd, &ps);<br />GetClientRect (hwnd, &rect) ;<br />hBrush = CreateSolidBrush (color) ;<br />FillRect (hdc, &rect, hBrush) ;<br />EndPaint(hwnd, &ps);<br />DeleteObject (hBrush) ;<br />break;<br />case WM_CLOSE:<br />DestroyWindow(hwnd);<br />break;<br />case WM_DESTROY:<br />KillTimer (hwnd, 1) ;<br />PostQuitMessage(0);<br />break;<br />default:<br />return DefWindowProc(hwnd, msg, wParam, lParam);<br />}<br />return 0;<br />}<br />

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.