MFC笔记13.11.15

来源:互联网 发布:自动发卡程序源码 编辑:程序博客网 时间:2024/05/20 15:59

1.获取控件大小

CRect rect;

GetDlgItem(IDC_STATIC_FRAME)->GetWindowRect(&rect);

ScreenToClient(rect);//不能忘记转换

m_Dlg.MoveWindow(&rect);

2.向指定对话框发送消息并响应

发消息:

HWND m_hMainWnd;//要发送的窗口

::PostMessage( m_hMainWnd, WM_MODE_CHANGED, MODE_TEACH, 0);

响应消息:

afx_msg LRESULT ONSubMessage(WPARAM wParam, LPARAM lParam);//函数声明

ON_MESSAGE(WM_MODE_CHANGED, ONSubMessage)//消息映射

LRESULT CtestDlg::ONSubMessage(WPARAM wParam, LPARAM lParam)//函数实现
{

}

3.启动和关闭一个程序

HWND hWndPen = ::FindWindow(NULL, _T("pen"));//窗口名为"pen";
if (hWndPen == NULL)
WinExec("pen.exe", SW_SHOW);
else
::PostMessage(hWndPen,WM_CLOSE,0,0);

4.弹出菜单栏

CMenuMenu;
Menu.LoadMenuW(IDR_MAIN_MENU);//要弹出的菜单

CMenu* pPopupMenu = Menu.GetSubMenu(0);
if (pPopupMenu == NULL)
return ;


CRect rect;
GetDlgItem(IDC_BTN_MENU)->GetWindowRect(&rect);//获取按键位置

pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN |TPM_RIGHTBUTTON, 

rect.left, rect.bottom, this);//在按键下方弹出菜单

原创粉丝点击