1099062139 发表于 2015-5-18 22:34:14

今天看了孙鑫windows程序设计第一集 为什么弄不对啊

不是程序错了 请告诉原因是什么了 弄了一天了




#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
                                 )
{
      WNDCLASSwndclass;
      
      wndclass.hbrBackground=(HBRUSH)GetStockObject(DKGRAY_BRUSH); //画刷背景颜色
      wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);   //鼠标
      wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);    //图标   第一个空 第二个系统
      wndclass.hInstance=hInstance;//实例句柄
      wndclass.lpfnWndProc=WinSunProc;    //窗口处理函数
      wndclass.lpszClassName="weixin";   //窗口类的名字与下对应
      wndclass.lpszMenuName=NULL;   //菜单名
      wndclass.style=CS_HREDRAW | CS_VREDRAW;    //窗口类型                        
      wndclass.cbClsExtra=0;          //额外的字节通常不用
      wndclass.cbWndExtra=0;          //额外的字节
      wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);    //图标   第一个空 第二个系统

                              //注册
      RegisterClass(&wndclass);   // 传入地址
      HWNDhwnd;
      hwnd=CreateWindow("weixin", "北京维新培训", WS_OVERLAPPEDWINDOW, CW_USEDEFAULT,CW_USEDEFAULT,NULL, NULL, hInstance, NULL);
                              
      ShowWindow(hwnd,SW_SHOWNORMAL) ;               //第一个是窗口句柄,第二个是 显示状态
                              
      UpdateWindow(hwnd);         //更新窗口
                              
      MSG msg;
      while(GetMessage(&msg,NULL,0,0))   // 第一个消息结构体的指针 第二个NULL 为所有消息      // 第三 消息最小量   第四 消息最大量
      {
                TranslateMessage(&msg);         //转换   ???转换为Wchar消息
                DispatchMessage(&msg);            // 让系统调用   处理函数自己编的那个
      }
      return 0;
                        
}



LRESULT CALLBACK WinSunProc(HWND hwnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{
      HDC hdc;
      OAINTSTRUCT ps;
      switch(uMsg)
      {
      case WM_pAINT:
                hdc=BeginPaint(hwnd,%ps);
                TextOut(hdc,0,0,"北京北京北京北京",strlen("北京维新科学技术培训中心"));
                        EndPaint(hwnd,&ps);
                break;
      case WH_CHAR:
                char szChar;
                sprintf(szChar,"char is %d",wParam);
                MessageBox(hwnd,szChar,"winxin",MB_OK);
                break;
      case WM_LBUTTONDOWN:
                MessageBox(hwnd,"mouse click","weixin",MB_OK);
                HDC hDC;
                hDC=GetDC(hwnd);
                TextOut(hDC,0,50,"计算机编程语言培训",strlen("计算机编程语言培训"));
                ReleaseDC(hwnd,hDC);
                break;
      case WM_CLOSE:
                if(IDYES==MessageBox(hwnd,"你是否要退出程序?","weixin",MB_YESNO))
                {
                        DestroyWindow(hwnd);
                }
                break;
      case WM_DESTROY:
                PostQuitMessage(0);
                break;
      default:
                return DefWindowProc(hwnd,uMsg,wParam,lParam);
      }
      return 0;
}

1099062139 发表于 2015-5-18 22:35:54

说头文件不对还是怎么的

一叶扁舟 发表于 2015-5-22 08:32:52

我没编译过只是看了一下代码,你 case WH_CHAR:这儿写错了吧,应该是WM_CHAR

溯月0503 发表于 2015-5-22 09:34:34

:sad没看

You0 发表于 2015-5-22 13:27:14

换编译器
页: [1]
查看完整版本: 今天看了孙鑫windows程序设计第一集 为什么弄不对啊