zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    利用JasperReport+iReport进行Web报表开发
    EEPlat PaaS VS Saleforce force.com
    Python用subprocess的Popen来调用系统命令
    最短路径A*算法原理及java代码实现(看不懂是我的失败)
    Java抓取网页数据(原网页+Javascript返回数据)
    Atitit.dwr3 不能显示错误具体信息的解决方式,控件显示错误具体信息的解决方式 java .net php
    白话经典算法系列之五 归并排序的实现
    poj 百练 2765 八进制小数(精度问题)
    winzip15.0注冊码
    Python:渗透测试开源项目
  • 原文地址:https://www.cnblogs.com/aoyihuashao/p/1717415.html
Copyright © 2011-2022 走看看