学习vc++的第九天--预编译头的处理方式+MFC学习

预编译头的处理方式:

添加到最上面 #include "stdafx.h" 

或者:

对着.cpp右键--属性--预编译头=不使用预编译头 (但是爆了链接错误...vc驿站没搞了???!!!!)

 

mfc工程建立 

 

 如果编译有错,替换CDialogEx为CDialog..

自绘控件 Owner Draw= true

https://www.bilibili.com/video/av79302998?p=70

https://www.codeproject.com/   资源网站

这里现在学没有什么意义.......我看完就忘记了................

MFC操纵控件有几种方法....

写一个一按按钮就禁用它自己的功能来展示,双击一个button,

在 void CMFCApplication1Dlg::OnBnClickedBtnLogin() 函数内:

WinApi法,全局函数调用.(最复杂)

    HWND hLoginBtn = ::GetDlgItem( //全局函数,得到目标控件的窗口句柄
        GetSafeHwnd(),  //哪一个对话框
        IDC_BTN_LOGIN); //控件的ID
    if (hLoginBtn)
    {
        ::EnableWindow(hLoginBtn, FALSE);//禁用控件
    }
View Code

获取指针法(同时掌握)

    CWnd* pLoginBtn = GetDlgItem(IDC_BTN_LOGIN);
    if (pLoginBtn)
    {
        //::EnableWindow(pLoginBtn->GetSafeHwnd(), FALSE); //全局禁用
        pLoginBtn->EnableWindow(FALSE); //继承的操作
        //EnableWindow(FALSE); //不可以这样,因为这样是禁用了整个对话框
    }
View Code

控制变量法(最简单) 参考下图

    //为了拿到控件的id,所以要用控件变量->添加控制变量,就不再需要频繁像上面一样获取句柄指针了
    m_LoginBtn.EnableWindow(false);
View Code

  

 

这样就大概了解控件的操作方式,尽可能往最简单的学就好了......太复杂就不叫面向对象了......

其他控件操作可能我要消化一段时间.....

原文地址:https://www.cnblogs.com/JJBox/p/12548625.html