• Windows程序设计 读书笔记 对话框。


    一、对话框过程和窗口过程直接的区别。

      1,返回值:

        窗口 LRESULT

        对话框 BOOL

      2,不处理的消息:

        窗口 交给DefWindowProc

        对话框 处理返回TRUE 不处理返回FALSE.

      3,特定消息:

        对话框过程不处理WM_PAINT,WM_DESTROY,不接收WM_CREATE,而是在WM_INITDIALOG里面初始化。

        WM_INITDIALOG是对话框接收到的第一个消息。

    二、在MFC对话框中获取HINSTANCE

      1,HINSTANCE hInstance = AfxGetInstanceHandle();

      2,HINSTANCE hInstance = (HINSTANCE)GetWindowLong(hwmd,GWL_HINSTANCE);

    三、模态对话框和非模态对话框。

        domodal或dialogbox的是模态的。

        createdialog或createwindow的是非模态的

      非模态对话框,在对话框属性里指定了“可见”,即WS_VISIBLE风格后,createdialog即可显示。如果没指定,则必须调用ShowWindow才能显示。

      非模态对话框的消息要要经过程序的消息队列。消息队列的处理要判断是否是对话框消息:

      while (GetMessage (&msg, NULL, 0, 0))
         {
              if (hDlgModeless == 0 || !IsDialogMessage (hDlgModeless, &msg))
              {
                   TranslateMessage (&msg) ;
                   DispatchMessage  (&msg) ;
              }
         }

      模态对话框用EndDialog结束,非模态用DestroyWindow结束。

    带参数的对话框:

    带参数的DialogBox :  INT_PTR DialogBoxParam(
      HINSTANCE hInstance,     // handle to module
      LPCTSTR lpTemplateName,  // dialog box template
      HWND hWndParent,         // handle to owner window
      DLGPROC lpDialogFunc,    // dialog box procedure
      LPARAM dwInitParam       // initialization value
    );

    参数指针 =  (参数类型*)lParam;

    四、用.dlg文件布局窗口。

      view - 资源包括 - compile-time directives 输入“#include "xxxx.dlg"”

      就相当于在rc文件中加入了上述文件中的内容。

      例子:

      xxxx.dlg:

    /*---------------------------
       HEXCALC.DLG dialog script
      ---------------------------*/
    
    HexCalc DIALOG -1, -1, 102, 122
    STYLE WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX
    CLASS "HexCalc"
    CAPTION "Hex Calculator"
    {
         PUSHBUTTON "D",       68,  8,  24, 14, 14
         PUSHBUTTON "A",       65,  8,  40, 14, 14
         PUSHBUTTON "7",       55,  8,  56, 14, 14
         PUSHBUTTON "4",       52,  8,  72, 14, 14
         PUSHBUTTON "1",       49,  8,  88, 14, 14
         PUSHBUTTON "0",       48,  8, 104, 14, 14
         PUSHBUTTON "0",       27, 26,   4, 50, 14
         PUSHBUTTON "E",       69, 26,  24, 14, 14
         PUSHBUTTON "B",       66, 26,  40, 14, 14
         PUSHBUTTON "8",       56, 26,  56, 14, 14
         PUSHBUTTON "5",       53, 26,  72, 14, 14
         PUSHBUTTON "2",       50, 26,  88, 14, 14
         PUSHBUTTON "Back",     8, 26, 104, 32, 14
         PUSHBUTTON "C",       67, 44,  40, 14, 14
         PUSHBUTTON "F",       70, 44,  24, 14, 14
         PUSHBUTTON "9",       57, 44,  56, 14, 14
         PUSHBUTTON "6",       54, 44,  72, 14, 14
         PUSHBUTTON "3",       51, 44,  88, 14, 14
         PUSHBUTTON "+",       43, 62,  24, 14, 14
         PUSHBUTTON "-",       45, 62,  40, 14, 14
         PUSHBUTTON "*",       42, 62,  56, 14, 14
         PUSHBUTTON "/",       47, 62,  72, 14, 14
         PUSHBUTTON "%",       37, 62,  88, 14, 14
         PUSHBUTTON "Equals",  61, 62, 104, 32, 14
         PUSHBUTTON "&&",      38, 80,  24, 14, 14
         PUSHBUTTON "|",      124, 80,  40, 14, 14
         PUSHBUTTON "^",       94, 80,  56, 14, 14
         PUSHBUTTON "<",       60, 80,  72, 14, 14
         PUSHBUTTON ">",       62, 80,  88, 14, 14
    }
    
    

    五、

    打开文件GetOpenFileName
    保存文件GetSaveFileName

    查找 FindText
    替换 ReplaceText

    判断是否unicode    IsTextUnicode

    获取颜色   ChooseColor

  • 相关阅读:
    系统架构
    Maven项目管理工具
    SpringMVC进阶(二)
    SpringMVC入门(一)
    Mybatis进阶(三)
    Mybatis进阶(二)
    Mybatis入门(一)
    Redis入门,Jedis和常用命令
    关于MVC 上传文件
    Html遮罩层的显示(主要在于样式设置)
  • 原文地址:https://www.cnblogs.com/aoyihuashao/p/1717415.html
Copyright © 2020-2023  润新知