源自:http://blog.csdn.net/chenqiai0/article/details/8045123
- #include <windows.h>
- #include <string>
- using namespace std;
- //----------函数声明---------------
- void init(HWND hWnd,HINSTANCE hInstance);
- void pix(HWND &hWnd,HDC &hDC,HBRUSH &NewBrush,PAINTSTRUCT &Ps);//画点,也就是像素输出
- void rect(HWND &hWnd,HDC &hDC,HBRUSH &NewBrush,PAINTSTRUCT &Ps);//----画矩形----
- void fillrect(HWND &hWnd,HDC &hDC,HBRUSH &NewBrush,RECT &r,PAINTSTRUCT &Ps);//填充矩形
- void linerect(HWND &hWnd,HDC &hDC,HBRUSH &NewBrush,RECT &r,PAINTSTRUCT &Ps);//线框矩形
- void triangle(HWND &hWnd,HDC &hDC,HBRUSH &NewBrush,POINT Pt[3],PAINTSTRUCT &Ps);//三角形
- void ellipse(HWND &hWnd,HDC &hDC,HBRUSH &NewBrush,RECT &r,PAINTSTRUCT &Ps);//椭圆
- void DrawContent(HWND hWnd);
- //-----回调函数-----------------
- LRESULT CALLBACK WindProcedure(HWND hWnd, UINT Msg, WPARAM wParam, LPARAM lParam);
- INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
- LPSTR lpCmdLine, int nCmdShow)
- {
- WNDCLASSEX WndCls;
- MSG Msg;
- WndCls.cbSize = sizeof(WndCls);
- WndCls.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW;
- WndCls.lpfnWndProc = WindProcedure;
- WndCls.cbClsExtra = 0;
- WndCls.cbWndExtra = 0;
- WndCls.hInstance = hInstance;
- WndCls.hIcon = LoadIcon(NULL, IDI_APPLICATION);
- WndCls.hCursor = LoadCursor(NULL, IDC_ARROW);
- WndCls.hbrBackground = (HBRUSH)GetStockObject(WHITE_BRUSH);
- WndCls.lpszMenuName = NULL;
- WndCls.lpszClassName = TEXT("MAIN");
- WndCls.hIconSm = LoadIcon(hInstance, IDI_APPLICATION);
- RegisterClassEx(&WndCls);
- HWND hWnd=CreateWindowEx(WS_EX_OVERLAPPEDWINDOW,
- TEXT("MAIN"),TEXT( "陈琦"),
- WS_OVERLAPPEDWINDOW | WS_VISIBLE,
- CW_USEDEFAULT, CW_USEDEFAULT, 820, 820,
- NULL, NULL, hInstance, NULL);
- init(hWnd,hInstance);
- UpdateWindow(hWnd);
- while( GetMessage(&Msg, NULL, 0, 0) )
- {
- TranslateMessage(&Msg);
- DispatchMessage( &Msg);
- }
- return static_cast<int>(Msg.wParam);
- }
- void init(HWND hWnd,HINSTANCE hInstance)
- {
- CreateWindow( TEXT("BUTTON"), TEXT("画点"), WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 0, 0, 150,80, hWnd,NULL, hInstance, NULL);
- CreateWindow( TEXT("BUTTON"), TEXT("矩形"), WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 0, 90, 150,80, hWnd,NULL, hInstance, NULL);
- CreateWindow( TEXT("BUTTON"), TEXT("填充矩形"), WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 0, 180, 150,80, hWnd,NULL, hInstance, NULL);
- CreateWindow( TEXT("BUTTON"), TEXT("线框矩形"), WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 0, 270, 150,80, hWnd,NULL, hInstance, NULL);
- CreateWindow( TEXT("BUTTON"), TEXT("三角形"), WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 0, 360, 150,80, hWnd,NULL, hInstance, NULL);
- CreateWindow( TEXT("BUTTON"), TEXT("椭圆"), WS_VISIBLE | WS_CHILD | BS_DEFPUSHBUTTON, 0, 450, 150,80, hWnd,NULL, hInstance, NULL);
- }
- LRESULT CALLBACK WindProcedure(HWND hWnd, UINT Msg,WPARAM wParam, LPARAM lParam)
- {
- HDC hDC;
- PAINTSTRUCT Ps;
- HBRUSH NewBrush;
- RECT r;
- POINT Pt[3];
- switch(Msg)
- {
- case WM_COMMAND:
- HWND h;
- h=FindWindowEx(hWnd ,NULL,TEXT("BUTTON"),TEXT("画点"));
- if(DWORD(lParam)==int(h))
- {
- pix(hWnd,hDC,NewBrush,Ps);
- break;
- }
- h=FindWindowEx(hWnd ,NULL,TEXT("BUTTON"),TEXT("矩形"));
- if(DWORD(lParam)==int(h))
- {
- rect(hWnd,hDC,NewBrush,Ps);
- break;
- }
- h=FindWindowEx(hWnd ,NULL,TEXT("BUTTON"),TEXT("填充矩形"));
- if(DWORD(lParam)==int(h))
- {
- fillrect(hWnd,hDC,NewBrush,r,Ps);
- break;
- }
- h=FindWindowEx(hWnd ,NULL,TEXT("BUTTON"),TEXT("线框矩形"));
- if(DWORD(lParam)==int(h))
- {
-