Day 4:一个程序运行成功及解决方法

来源:互联网 发布:cydia软件源2017 编辑:程序博客网 时间:2024/06/06 05:10

这是最后通过编译的代码。

#include <windows.h>#include <stdio.h>LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam);int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){WNDCLASS wndcls;wndcls.cbClsExtra = 0;wndcls.cbWndExtra = 0;wndcls.hbrBackground = (HBRUSH)GetStockObject(BLACK_BRUSH);wndcls.hCursor = LoadCursor(NULL, IDC_CROSS);wndcls.hIcon = LoadIcon(NULL, IDI_ERROR);wndcls.hInstance = hInstance;wndcls.lpfnWndProc = WinSunProc;wndcls.lpszClassName = "sunxin2006";wndcls.lpszMenuName = NULL;wndcls.style = CS_HREDRAW | CS_VREDRAW;RegisterClass(&wndcls);HWND hwnd;hwmd = CreateWindow("sunxin2006", "123", WS_OVERLAPPEDWINDOW, 0, 0, 600, 400, NULL, NULL, hInstance, NULL);ShowWindow(hwnd, SW_SHOWNORMAL);UpdateWindow(hwnd);MSG msg;while (GetMessage(&msg, NULL, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}return 0;}LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam){switch (uMsg){case WM_CHAR:char szChar[20];sprintf(szChar, "char code is %d", wParam);MessageBox(hwnd, szChar, "char", 0);break;case WM_LBUTTONDOWN:MessageBox(hwnd; "mouse clicked", "message", 0);HDC hdc;hdc = GetDC(hwnd);TextOut(hdc, 0, 50, "程序员之家", strlen("程序员之家"));ReleaseDC(hwnd, hdc);break;case WM_PAINT:HDC hDC;PAINTSTRUCT ps;hDC = BeginPaint(hwnd, &ps);TextOut(hDC, 0, 0, "123", strlen("123"));EndPaint(hwnd, &ps);break;case WM_CLOSE:if (IDYES == MessageBox(hwnd, "是否真的结束?","message", MB_YESNO)){DestroyWindow(hwnd);}break;case WM_DESTROY:PostQuitMessage(0);break;default:return DefWindowProc(hwnd, uMsg, wParam, lParam);}return 0;}

1.这个代码必须要在VS中项目文件中的源文件里才可被编译。

2.很多错误都通过改变字符集,将Unicode改成多字符集搞定。

3.有变量名字打错了。

4.

if (IDYES == MessageBox(hwnd, "是否真的结束?","message", MB_YESNO))

这一行有一个逗号是中文逗号。


最后还有几个警告忽略。

运行成功。




0 0