CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C/C++ >  C++ 语言

又是一个问题

楼主jonnylin()2005-04-03 20:32:00 在 C/C++ / C++ 语言 提问

#include   <windows.h>  
  #include   <stdlib.h>  
  #include   <string.h>  
  long   WINAPI   WndProc(HWND   hWnd,UINT   iMessage,UINT   wParam,LONG   lParam);  
  BOOL   InitWindowsClass(HINSTANCE   hInstance);  
  BOOL   InitWindows(HINSTANCE   hInstance,int   ncmdShow);  
  HWND   hWndMain;  
   
  int   WINAPI   WinMain(HINSTANCE   hInstance,HINSTANCE   hPrevInstance,LPSTR   lpCmdLine,int   nCmdShow)  
  {  
      MSG   Message;  
      if(!InitWindowsClass(hInstance))  
      return   FALSE;  
      if(!InitWindows(hInstance,nCmdShow))  
      return   FALSE;  
      while(GetMessage(&Message,0,0,0))  
      {  
    TranslateMessage(&Message);  
    DispatchMessage(&Message);  
      }  
      return   Message.wParam;  
  }  
   
  long   WINAPI   WndProc(HWND   hWnd,UINT   iMessage,UINT   wParam,LONG   lParam)  
  {  
        HDC   hDC;  
        HBRUSH   hBrush;  
        HPEN   hPen;  
        PAINTSTRUCT   PtStr;  
        switch(iMessage)  
        {  
    case   WM_PAINT:  
      hDC=BeginPaint(hWnd,&PtStr);  
      SetMapMode(hDC,MM_ANISOTROPIC);  
      hPen=(HPEN)GetStockObject(BLACK_PEN);  
      hBrush=(HBRUSH)GetStockObject(DKGRAY_BRUSH);  
      SelectObject(hDC,hBrush);  
      SelectObject(hDC,hPen);  
      RoundRect(hDC,50,120,100,200,15,15);  
      hBrush=(HBRUSH)GetStockObject(LTGRAY_BRUSH);  
      SelectObject(hDC,hBrush);  
      Ellipse(hDC,150,50,200,150);  
    case   WM_DESTROY:  
      PostQuitMessage(0);  
      return   0;  
    default:  
      return(DefWindowProc(hWnd,iMessage,wParam,lParam));  
   
        }  
   
  }  
   
   
  BOOL   InitWindows(HINSTANCE   hInstance,int   nCmdShow)  
  {  
      HWND   hWnd;  
      hWnd=CreateWindow("WinFull","填充示例程序",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);  
      if(!hWnd)  
      return   FALSE;  
      hWndMain=hWnd;  
      ShowWindow(hWnd,nCmdShow);  
      UpdateWindow(hWnd);  
      return   TRUE;  
  }  
   
   
  BOOL   InitWindowsClass(HINSTANCE   hInstance)  
  {  
        WNDCLASS   WndClass;  
        WndClass.cbClsExtra=0;  
        WndClass.cbWndExtra=0;  
        WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH));  
        WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);  
        WndClass.hIcon=LoadIcon(NULL,"END");  
        WndClass.hInstance=hInstance;  
        WndClass.lpfnWndProc=WndProc;  
        WndClass.lpszClassName="WinFill";  
        WndClass.lpszMenuName=NULL;  
        WndClass.style=CS_HREDRAW|CS_VREDRAW;  
        return   RegisterClass(&WndClass);  
   
  }  
   
   
  建立一个win32   application  
  程序如上  
  编译,LINK   都没有问题。但运行却看不到任何效果 问题点数:10、回复次数:7Top

1 楼ForTopLevel(Beahead)回复于 2005-04-04 00:08:47 得分 0

没有看到你对nCmdShow的赋值,把它赋为SW_SHOWDEFAULT看看.Top

2 楼feelerone()回复于 2005-04-04 01:02:41 得分 0

没有调用   EndPaint   函数Top

3 楼antter(JiangMiao)回复于 2005-04-04 01:05:26 得分 0

你case   WM_PAINT后PostQuitMessage(0)了Top

4 楼nasi00(莫傲·逍遥)回复于 2005-04-04 02:47:42 得分 0

case   WM_PAINT:  
   
          break;   //   貌似少了这个...Top

5 楼jonnylin()回复于 2005-04-04 13:00:42 得分 0

不行  
  还是不能看到窗口Top

6 楼antter(JiangMiao)回复于 2005-04-04 15:50:27 得分 10

我对你的粗心表示遗憾  
  hWnd=CreateWindow("WinFull","   //   拼错了,因该是WinFillTop

7 楼jonnylin()回复于 2005-04-04 19:15:01 得分 0

谢谢  
  真的非常感谢!!Top

相关问题

  • 又是SQL??
  • 又是c++
  • 又是unicode
  • ToolBar~又是ToolBar~~~~~????????
  • 又是怪事????????????
  • 又是100分
  • 又是winsock
  • 又是工作!!
  • 又是DATAGRID,哎
  • 又是问题

关键词

  • null
  • wndclass
  • hinstance
  • hbrush
  • hwnd
  • ncmdshow
  • hdc
  • hpen
  • initwindowsclass
  • imessage

得分解答快速导航

  • 帖主:jonnylin
  • antter

相关链接

  • C/C++ Blog
  • C/C++类图书
  • C/C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo