MFC 基础知识

来源:互联网 发布:财务记账软件免费版 编辑:程序博客网 时间:2024/05/16 12:18

1、刷新桌面
//第一个可以
SendMessage(GetDesktopWindow(),WM_SYSCOLORCHANGE,0,0);
//第二个没有试验
SendMessage(HWND_BROADCAST,   WM_SETTINGCHANGE,   0,   0);

2、遍历控件
 CWnd* pWnd = GetWindow(GW_CHILD);  
    char cClassName[255]={0};
    while(pWnd)
     {  
        GetClassName(pWnd->GetSafeHwnd(),cClassName,255);//得到控件的类名,主要有Edit,Button,Static等等

//CDataTimeCtrl 是"SysDateTimePick32"
        if(strcmp(cClassName,"Button") == 0) //是Button控件
        {
            CButton *pBtn = (CButton*) pWnd;
   pBtn->SetWindowText(_T("hah"));//(BUTTON_BKCOLOR); //按钮背景色
        }
        pWnd = pWnd->GetWindow(GW_HWNDNEXT);
     }


3. CStatusBar

CStatusBar  m_wndStatusBar;

m_wndStatusBar.Create(this/*, WS_CHILD|WS_VISIBLE|CBRS_BOTTOM*/);
 m_wndStatusBar.SetIndicators(indicators,sizeof(indicators)/sizeof(UINT));
 this->m_wndStatusBar.SetPaneInfo(0,ID_INDICATOR_MSG, SBPS_STRETCH,0);     
 this->m_wndStatusBar.SetPaneInfo(1,ID_INDICATOR_TIME, SBPS_NORMAL,400);

RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,ID_INDICATOR_MSG);
 RepositionBars(AFX_IDW_CONTROLBAR_FIRST,AFX_IDW_CONTROLBAR_LAST,ID_INDICATOR_TIME);

4软件图标等

CSystemTray m_TrayIcon;

CString strToolTip;
 this->GetWindowText(strToolTip);
 m_TrayIcon.Create(this, WM_ICON_NOTIFY, strToolTip,
                      m_hIcon, IDR_TRAY_MENU);
 //m_TrayIcon.MinimiseToTray(this);
 m_TrayIcon.SetMenuDefaultItem(ID_TRAYMENU_OPEN, FALSE);

//修改小图标和大图标
 m_hIcon =AfxGetApp()->LoadIcon(IDR_WMROK);
 SetIcon(m_hIcon,TRUE);
 SetIcon(m_hIcon,FALSE);
 m_TrayIcon.SetIcon(m_hIcon);

5. 将CList开始处添加上Check Box控件 ListView_SetExtendedListViewStyle(m_VehicleListCtrl.m_hWnd, LVS_EX_FULLROWSELECT|LVS_EX_CHECKBOXES);

6.按F1-F12的过程:

BOOL CDialog::PreTranslateMessage(MSG* pMsg)

{

if (pMsg->message == WM_KEYDOWN)

{

switch (pMsg->wParam) {
   case VK_F1 :
    OnBnClickedButtonOneShotAndQuery();
    return TRUE;

case ......

default:

break;

}

return CDialog::PreTranslateMessage(pMsg);

]

 

6 在控件继承类中编辑输入文字的颜色:下面有些定义有问题,请自行更正,大概意思如此

在pDC->DrawText(*,*);中修改为如下:

COLOREFE col=pDC->SetTextColor(RGB(255,255,255));

pDC->SetBkMode(TRANSPARENT);

pDC->DrawText(*,*);

pDC->SelectObject(col);

原创粉丝点击