zoukankan      html  css  js  c++  java
  • Visual C++ 201148

    一.DDX_Control && UpdateData

    将控件Id和实例关联起来,方便直接取得对象,与GetDlgItem函数取对象相同

    void CDemoDlg::DoDataExchange(CDataExchange* pDX)
    {
        CDialog::DoDataExchange(pDX);
        //{{AFX_DATA_MAP(CDemoDlg)
        
        DDX_Control(pDX, IDC_LIST, m_ctrlList);
        CWnd *dlg=this->GetDlgItem(IDC_LIST);
        //}}AFX_DATA_MAP
    }
    

    除了DDX_Control之外,还有其他DDX_xxx的函数,比如绑定到CheckBox和BOOL变量,调用UpdateData方法则会更新数据

    二.MAKEINTRESOURCE

    资源名转换的宏,即将数字转换为字符串

    参考:http://baike.baidu.com/view/2899077.htm

    三.ExpandEnvironmentStrings

    获取操作系统环境变量

    #include <windows.h>
    #include <stdio.h>
    void main(void)
    {
        putenv("Program Files=c:\\Program   Files");
        putenv("MyPath=Outlook Express");
        
        //char *var1="%Program Files%\\%MyPath%\\msimn.exe";
        char *var1 = "%SystemDrive%";
        char buf1[1024];
        
        ExpandEnvironmentStrings(var1,buf1,sizeof(buf1));
        MessageBoxA(NULL, buf1, "ExpandStrings1: SystemDrive", MB_OK);
        
        //char *var2="%temp%\\adsdasd";
        char *var2 = "%WinDir%";
        char buf2[1024];
        
        ExpandEnvironmentStrings(var2,buf2,sizeof(buf2));
        MessageBoxA(NULL, buf2, "ExpandStrings2: WinDir", MB_OK);
    }
    

    四.CImageList

    Provides the functionality of the Windows common image list control.

    即为MFC控件提供一个图片的列表.
    比如给CComboBoxEx和CListCtrl等控件使用,调用相关控件的SetImageList方法

     CImageList *m_pImageListSmall = new CImageList();
        m_pImageListSmall->Create(16, 16, TRUE, 4, 4);
        m_pImageList->Add(pApp->LoadIcon(IDI_ICONLIST1));
        m_pImageList->Add(pApp->LoadIcon(IDI_ICONLIST2));
        m_pImageList->Add(pApp->LoadIcon(IDI_ICONLIST3));
        m_pImageList->Add(pApp->LoadIcon(IDI_ICONLIST4));
    CComboBoxEx *m_wndCBEx= (CComboBoxEx*)this->GetDlgItem(IDC_COMBOBOXEX1);
     m_wndCBEx->SetImageList (m_pImageListSmall);
    for (int i=0; i<5; i++) {
        CString string;
        string.Format (_T ("Item %d"), i);
        COMBOBOXEXITEM cbei;
        cbei.mask = CBEIF_IMAGE| CBEIF_SELECTEDIMAGE | CBEIF_TEXT;
        cbei.iItem = i;
        cbei.pszText = (LPTSTR) (LPCTSTR) string;
        cbei.iImage = 1;
        cbei.iSelectedImage = 1;
        cbei.iIndent = (i & 0x03); 
        m_wndCBEx->InsertItem (&cbei);
    }
    

    五.GetStockObject

    取得一个固有对象(即操作系统预定的对象,无法删除),不要用DeleteObject去删除GetStockObject取出的对象

    六.CPropertySheet && CPropertyPage

    属性Tab选项卡,CPropertyPage继承自CDialog,所以也是对话框

    class CFirstPage : public CPropertyPage
    {
    public:
        CFirstPage () : CPropertyPage (IDD_FIRSTPAGE) {};
        // Declare CFirstPage's data members here.
    protected:
        virtual void DoDataExchange (CDataExchange*);
    };
    class CSecondPage : public CPropertyPage
    {
    public:
        CSecondPage () : CPropertyPage (IDD_SECONDPAGE) {};
        // Declare CSecondPage's data members here.
    protected:
        virtual void DoDataExchange (CDataExchange*);
    };
    class CMyPropertySheet : public CPropertySheet
    {
    public:
        CFirstPage m_firstPage;         // First page
        CSecondPage m_secondPage;       // Second page
        // Constructor adds the pages automatically.
        CMyPropertySheet (LPCTSTR pszCaption, 
            CWnd* pParentWnd = NULL) :
            CPropertySheet (pszCaption, pParentWnd, 0)
        {
            AddPage (&m_firstPage);
            AddPage (&m_secondPage);
        }
    };
    
    

    先有个概念了解下
    参考:Visual Studio的PropDlg例子
    http://www.vckbase.com/document/viewdoc/?id=398
    http://www.vckbase.com/document/viewdoc/?id=330
    http://blog.csdn.net/lixiaosan/archive/2006/04/13/661458.aspx

    七.SetIcon两次的疑惑

    http://zhidao.baidu.com/question/176982744.html

  • 相关阅读:
    Leetcode 171. Excel Sheet Column Number
    Leetcode 206 Reverse Linked List
    Leetcode 147. Insertion Sort List
    小明一家人过桥
    Leetcode 125. Valid Palindrome
    Leetcode 237. Delete Node in a Linked List
    Leetcode 167 Two Sum II
    张老师的生日
    Leetcode 27. Remove Element
    Leetcode 283. Move Zeroes
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/2012054.html
Copyright © 2011-2022 走看看