CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  基础类

windows sdk 的问题?

楼主vincentmars(BlackFox)2001-09-25 16:35:22 在 VC/MFC / 基础类 提问

以下程序,在窗口中显示非模式对话框,但却显示不出来,对话框风格已指定了WS_VISIBLE。  
  请高手指教:  
  #include   <windows.h>  
  #include   "resource.h"  
   
  LRESULT   CALLBACK   WndProc   (HWND,   UINT,   WPARAM,   LPARAM)   ;  
  BOOL         CALLBACK   AboutDlgProc   (HWND,   UINT,   WPARAM,   LPARAM)   ;  
  HWND   idlg;  
  int   WINAPI   WinMain   (HINSTANCE   hInstance,   HINSTANCE   hPrevInstance,  
                                          PSTR   szCmdLine,   int   iCmdShow)  
  {  
            static   TCHAR   szAppName[]   =   TEXT   ("About3")   ;  
            MSG         msg   ;  
            HWND       hwnd   ;  
            WNDCLASS       wndclass   ;  
           
            wndclass.style                   =   CS_HREDRAW   |   CS_VREDRAW   ;  
            wndclass.lpfnWndProc       =   WndProc   ;  
            wndclass.cbClsExtra         =   0   ;  
            wndclass.cbWndExtra         =   0   ;  
            wndclass.hInstance           =   hInstance   ;  
            wndclass.hIcon                   =   LoadIcon   (hInstance,   szAppName)   ;  
            wndclass.hCursor               =   LoadCursor   (NULL,   IDC_ARROW)   ;  
            wndclass.hbrBackground   =   (HBRUSH)   GetStockObject   (WHITE_BRUSH)   ;  
            wndclass.lpszMenuName     =   szAppName   ;  
            wndclass.lpszClassName   =   szAppName   ;  
             
            if   (!RegisterClass   (&wndclass))  
            {  
                      MessageBox   (NULL,   TEXT   ("This   program   requires   Windows   NT!"),  
                                              szAppName,   MB_ICONERROR)   ;  
                      return   0   ;  
            }            
            hwnd   =   CreateWindow   (szAppName,   TEXT   ("About   Box   Demo   Program"),  
                                                      WS_OVERLAPPEDWINDOW,  
                                                      CW_USEDEFAULT,   CW_USEDEFAULT,  
                                                      CW_USEDEFAULT,   CW_USEDEFAULT,  
                                                      NULL,   NULL,   hInstance,   NULL)   ;  
              idlg=CreateDialog(hInstance,MAKEINTRESOURCE(IDD_DIALOG),GetDesktopWindow()   ,(DLGPROC)AboutDlgProc);    
       
      ShowWindow   (hwnd,   iCmdShow)   ;  
            UpdateWindow   (hwnd)   ;    
             
            while   (GetMessage   (&msg,   NULL,   0,   0))  
            {   if(idlg==0||!IsDialogMessage(idlg,&msg))  
                      TranslateMessage   (&msg)   ;  
                      DispatchMessage   (&msg)   ;  
            }  
            return   msg.wParam   ;  
  }  
   
  LRESULT   CALLBACK   WndProc   (HWND   hwnd,   UINT   message,   WPARAM   wParam,   LPARAM   lParam)  
  {  
            static   HINSTANCE   hInstance   ;  
            HDC   hdc;  
            switch   (message)  
            {  
            case   WM_CREATE   :  
                      hInstance   =   ((LPCREATESTRUCT)   lParam)->hInstance   ;  
                      return   0   ;  
                       
            case   WM_COMMAND   :  
                      switch   (LOWORD   (wParam))  
                      {  
                      case   IDM_APP_ABOUT   :  
      hdc=GetDC(hwnd);  
                                TextOut(hdc,40,50,TEXT("jdfkdf"),7);ReleaseDC(hwnd,hdc);  
        return   0   ;  
                      }  
                      break   ;  
                       
            case   WM_DESTROY   :  
                      PostQuitMessage   (0)   ;  
                      return   0   ;  
            }  
            return   DefWindowProc   (hwnd,   message,   wParam,   lParam)   ;  
  }  
   
  BOOL   CALLBACK   AboutDlgProc   (HWND   hDlg,   UINT   message,    
                                                          WPARAM   wParam,   LPARAM   lParam)  
  {HDC   hdc;  
            switch   (message)  
            {  
            case   WM_INITDIALOG   :  
                  hdc=GetDC(hDlg);  
                  TextOut(hdc,100,322,TEXT("your"),5);  
                  ReleaseDC(hDlg,hdc);  
                  return   TRUE   ;  
                       
            case   WM_COMMAND   :  
                      switch   (LOWORD   (wParam))  
                      {  
                      case   IDOK   :  
                                DestroyWindow(hDlg)   ;  
                                idlg=0;  
                return   TRUE   ;  
                      case   IDC_cancel:  
                DestroyWindow(hDlg);  
                idlg=0;    
                return   TRUE;  
        }  
                      break   ;  
            }  
            return   FALSE   ;  
  }  
  问题点数:31、回复次数:3Top

1 楼HackerII(Brant Q)回复于 2001-09-25 16:54:09 得分 0

在CreateDialog后面加上ShowWindow(iDlg,SW_SHOW)试试Top

2 楼y616(qiang)回复于 2001-09-25 17:09:27 得分 31

没理由啊!!!!!  
   
  你能不能把你的源程序发给我试一下,不可能的事啊!!!!!!  
  我用sdk写了这么久的程序,还没遇到这样的事!!!!  
   
  yuqiang0304@163.netTop

3 楼vincentmars(BlackFox)回复于 2001-09-27 13:28:19 得分 0

我已试过ShowWindow(iDlg,SW_SHOW),仍不行Top

相关问题

  • windows sdk 编程
  • Microsoft Windows SDK?
  • Windows BlueTooth SDK
  • Win32 SDK for Windows NT 4.0
  • Windows Media Encoder SDK 开发?
  • 求windows media format sdk 9?
  • 关于Windows SDK,请教
  • eBay SDK for Windows 3.0 怎么用?
  • windows SDK编程的问题
  • SDK?

关键词

  • wndclass
  • szappname
  • hinstance
  • hwnd
  • text

得分解答快速导航

  • 帖主:vincentmars
  • y616

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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