• 002WINDOW窗口相关点 控件基础


    WINDOW窗口相关点
    风格:Windows窗口风格三个典型风格:重叠窗口,弹出窗口,子窗口   
    分别是:WS_OVERLAPPED    WS_POPUP    WS_CHILD
     
    控件基础
    控件时windows系统内置的窗口类,他们时某一个窗口的子窗口,所以创建他们的风格必须是WS_CHILD
     
     
    • 控件消息:
     
            分为两大类
    控件控制消息
    自己的专属消息,我们只需要向控件发送这些消息就能控制他们的行为,不需要关注他们怎么被处理的
    ...问题
     
    控件通知消息
    子控件通知父窗口的一些事件,常见的由子控件被点击,子空间需要重绘
    这里分为两大类
    WM_COMMAND: 标准控件的通知消息,标准控件的通知消息比较简单,用它即可
    WM_NOTIFY:        附加通用控件通常会用此消息给父窗口发通知
     
    这里说明下回调函数的wParam参数值
    我们通常用两个变量去接收wParam的值,具体原因是因为wParam是16位的二进制数,高位保存的是控件通知码,即控件的句柄
    而低位通常保存控件的ID,这里ID就尤为重要
    具体代码:
                    WORD wHigh    =    HIWORD(wParam);        //控件的窗口句柄
                    WORD wLow     =    LOWORD(wParam);      //控件ID      
     
    • 对话框
    模态对话框和非模态对话框
    模态窗口:用DialogBox()函数创建出来,自带消息循环,模态对话框可以理解为比较死板,要等这个窗口运行完毕后,父窗口才能被控制
    非模态窗口:用CreateWindow来创建,需要自己写一个消息循环,只在退出循环时,要用到EndDialog来退出内部消息循环

    <wiz_code_mirror>

     
     
     
     
     
                //新加非模态对话框
    /*
                hWnd = CreateDialog(gHIND,
                    MAKEINTRESOURCE(winid1),
                    NULL,
                    (DLGPROC)wProc);
                ShowWindow(hWnd, SW_SHOW);
                UpdateWindow(hWnd);*/
                //加模态对话框
                DialogBox(gHIND, MAKEINTRESOURCE(winid1), NULL, (DLGPROC)wProc);
     
     
    EndDiaolog();                关闭模态对话框,调用函数中关闭对话框,关闭后会有一个返回值给父窗口
    DestroyWindow();          关闭非模态对话框,退出消息循环,结束进程,但不等于退出运行
    PostQuitMessage();       退出运行,关闭程序
     
     
     
    • 控件的使用
     
        控件在使用之前,我们先看看他的创建,他的创建可以是CreateWindow创建出来的,也可以是我们用对话框资源一个一个创建出来,前者属于代码控制,更注重细节。后者是可视化的编程方式,能方便的控制各个控件的属性
        我们如何去使用控件,首先要明白,我们使用的是哪一个控件,每个控件的句柄每次打开程序都和上次不同,但是ID是不变的,所以我们只能去控制它的ID,而去使用它    通过ID找句柄函数        GetDigItem(父窗口句柄,控件ID);
     
    控件消息的接受过程:控件消息每次是由主窗口接受到,所以我们应该在父窗口的回调函数里面去处理控件消息,而控件消息主要分两种类型,
    WM_COMMAND,  WM_NOIFY
     
    每个消息的消息参数是不同的,拿WM_COMMADN来举例
    消息来源:WM_COMMAND
    接受单位:控件
    消息内容参数:    WPARAM(高位):响应Code
                                 WPARAM(低位):控件ID
                                 LPARAM:              控件句柄
    控件的使用套路:
                            根据ID找句柄,找到句柄发消息    具体怎么发,要看是什么控件
     
     
    • 通用控件
    通用控件通知消息的方式是WM_NOTIFY,创建的方式可以代码创建,也可以拖拽资源工具栏
    动态创建通用控件的步骤:
    1.包含<CommCtrl.h>头文件
    2.载入ComCtrl132.lib
    3.调用InitCommonControls初始化通用控件
    4.使用CreateWindowEx函数创建通用控件
     
    对话框资源直接拖拽直接使用即可
     
    WM_NOTIFY消息:
        他被创造出来的原因:我们使用控件的要求WM_COMMAND已经无法满足我们,所以WM_NOTIFY消息存放的信息比较多
    基本结构为
            WPARAM:    发生WM_NOTIFY消息的控件ID
            LPARAM:      NMHDR指针
    现在我们要的一些附加信息都存放到了NMHDR的一个结构体里面,该结构体通过LPARAM通知到父窗口
     
     
       
  • 相关阅读:
    Linux之定时器与时间管理 【转】
    LDAP研究
    Mac中使用svn进行项目管理
    英国调查报告称中国梦吸引力首超美国梦
    怎样删除在Github中创建的项目
    MySQL分组数据
    Eclipse ADT 插件安装慢的解决的方法
    iOS插件化研究之中的一个——JavaScriptCore
    二维码的妙用:通过Zxing实现wifi账号password分享功能
    CF(435D
  • 原文地址:https://www.cnblogs.com/Tempt/p/9987780.html
Copyright © 2020-2023  润新知