zoukankan      html  css  js  c++  java
  • NativeWindow_02_DialogBoxParam_VC6

    PS: 代码参考于<<Windows环境下32位汇编语言程序设计.chm>>,第5章,"5.4 对 话 框(2)" 。

    ZC: 与CreateWindow(Ex)相比,优点在于:(1)、窗口内容 所见即所得,(2)、写一个基本窗口所用的代码比CreateWindow(Ex)少(只需要写消息回调函数)。

    ZC: 与MFC相比,程序的代码少多了。

    1、

    创建"Win32 Application"的 空工程

    PS: 下面的3个文件(WinMain_z.cpp,DialogMain.rc,resource.h),直接复制到工程目录,然后添加到工程,即可。一个简单的窗口测试程序就OK了。

    2、

    创建源码文件 WinMain_Z.cpp,键入如下代码:

     1 #include <windows.h>
     2 #include "resource.h"
     3 
     4 HINSTANCE g_hInstance = 0;
     5 
     6 BOOL CALLBACK ProcDialog(
     7         HWND _hWnd, // 窗口句柄
     8         UINT _uMsg, // 消息ID(identifier)
     9         WPARAM _wParam,
    10         LPARAM _lParam)
    11 {
    12     if (WM_CLOSE == _uMsg)
    13     {
    14         EndDialog(_hWnd,NULL);
    15     }
    16     else if (WM_INITDIALOG == _uMsg)
    17     {
    18         //HICON hIcon = LoadIcon(g_hInstance, ICO_MAIN);
    19         //SendMessage(_hWnd, WM_SETICON, ICON_BIG, hIcon);
    20     }
    21     else if (WM_COMMAND == _uMsg)
    22     {
    23         WORD wLow = LOWORD(_wParam);
    24         if (IDOK == wLow)
    25         {
    26             EndDialog(_hWnd, NULL);
    27         }
    28     }
    29     else
    30     {
    31         return false;
    32     }
    33     return true;
    34 }
    35 
    36 int WINAPI WinMain(
    37         HINSTANCE _hInstance,        // 当前 hInstance句柄
    38         HINSTANCE _hPrevInstance,    // 之前的 hInstance句柄
    39         LPSTR _lpCmdLine,            // 命令行
    40         int _nCmdShow)                // 显示状态
    41 {
    42     g_hInstance = _hInstance;
    43 
    44     DialogBoxParam(_hInstance, (char*)IDD_DIALOG_MAIN, NULL, ProcDialog, NULL);
    45     ExitProcess(NULL);
    46     return 0;
    47 }

    3、

    资源文件:

    3.1、DialogMain_Z.rc

     1 //Microsoft Developer Studio generated resource script.
     2 //
     3 #include "resource.h"
     4 
     5 #define APSTUDIO_READONLY_SYMBOLS
     6 /////////////////////////////////////////////////////////////////////////////
     7 //
     8 // Generated from the TEXTINCLUDE 2 resource.
     9 //
    10 #include "afxres.h"
    11 
    12 /////////////////////////////////////////////////////////////////////////////
    13 #undef APSTUDIO_READONLY_SYMBOLS
    14 
    15 /////////////////////////////////////////////////////////////////////////////
    16 // Chinese (中国) resources
    17 
    18 #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_CHS)
    19 #ifdef _WIN32
    20 LANGUAGE LANG_CHINESE, SUBLANG_CHINESE_SIMPLIFIED
    21 #pragma code_page(936)
    22 #endif //_WIN32
    23 
    24 /////////////////////////////////////////////////////////////////////////////
    25 //
    26 // Dialog
    27 //
    28 
    29 IDD_DIALOG_MAIN DIALOG DISCARDABLE  100, 100, 300, 150
    30 STYLE DS_MODALFRAME | WS_MINIMIZEBOX | WS_MAXIMIZEBOX | WS_POPUP | 
    31     WS_CAPTION | WS_SYSMENU
    32 CAPTION "主对话框"
    33 FONT 10, "System"
    34 BEGIN
    35     DEFPUSHBUTTON   "确定",IDOK,243,6,50,14
    36 END
    37 
    38 
    39 /////////////////////////////////////////////////////////////////////////////
    40 //
    41 // DESIGNINFO
    42 //
    43 
    44 #ifdef APSTUDIO_INVOKED
    45 GUIDELINES DESIGNINFO DISCARDABLE 
    46 BEGIN
    47     IDD_DIALOG_MAIN, DIALOG
    48     BEGIN
    49         LEFTMARGIN, 7
    50         RIGHTMARGIN, 293
    51         TOPMARGIN, 6
    52         BOTTOMMARGIN, 143
    53     END
    54 END
    55 #endif    // APSTUDIO_INVOKED
    56 
    57 
    58 #ifdef APSTUDIO_INVOKED
    59 /////////////////////////////////////////////////////////////////////////////
    60 //
    61 // TEXTINCLUDE
    62 //
    63 
    64 1 TEXTINCLUDE DISCARDABLE 
    65 BEGIN
    66     "resource.h"
    67 END
    68 
    69 2 TEXTINCLUDE DISCARDABLE 
    70 BEGIN
    71     "#include ""afxres.h""
    "
    72     ""
    73 END
    74 
    75 3 TEXTINCLUDE DISCARDABLE 
    76 BEGIN
    77     "
    "
    78     ""
    79 END
    80 
    81 #endif    // APSTUDIO_INVOKED
    82 
    83 #endif    // Chinese (中国) resources
    84 /////////////////////////////////////////////////////////////////////////////
    85 
    86 
    87 
    88 #ifndef APSTUDIO_INVOKED
    89 /////////////////////////////////////////////////////////////////////////////
    90 //
    91 // Generated from the TEXTINCLUDE 3 resource.
    92 //
    93 
    94 
    95 /////////////////////////////////////////////////////////////////////////////
    96 #endif    // not APSTUDIO_INVOKED

    3.2、resource.h

     1 //{{NO_DEPENDENCIES}}
     2 // Microsoft Developer Studio generated include file.
     3 // Used by DialogMain.rc
     4 //
     5 #define IDD_DIALOG_MAIN                 101
     6 
     7 // Next default values for new objects
     8 // 
     9 #ifdef APSTUDIO_INVOKED
    10 #ifndef APSTUDIO_READONLY_SYMBOLS
    11 #define _APS_NEXT_RESOURCE_VALUE        102
    12 #define _APS_NEXT_COMMAND_VALUE         40001
    13 #define _APS_NEXT_CONTROL_VALUE         1000
    14 #define _APS_NEXT_SYMED_VALUE           101
    15 #endif
    16 #endif

    ZC: 在最后 RebuildAll 的时候,resource.h文件 会报错:“... ... esource.h(16) : fatal error RC1004: unexpected end of file found”

    ZC: 解决 : 在 resource.h文件 的最后多打几个回车 再 RebuildAll 就OK了。

    X

  • 相关阅读:
    Codeforces Round #527 (Div. 3) B. Teams Forming
    Train Problem I (栈的基本运用)
    浙江中医药大学第十二届大学生程序设计竞赛 J. Jhadgre爬楼梯
    判断二进制半整数
    简易连连看
    Codeforces Round #527 (Div. 3) A. Uniform String
    求字符串中出现次数最多的字符 JAVA
    母猪的故事 (递推题)
    C#判断文件和文件夹是否存在 不存在则创建
    C# 数据库备份与还原 小妹做了一个winform系统,需要对sql2000数据库备份和还原(小妹妹你太狠了)
  • 原文地址:https://www.cnblogs.com/cppskill/p/5222033.html
Copyright © 2011-2022 走看看