MFC笔记13.11.15

14 篇文章 0 订阅

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.弹出菜单栏

CMenu Menu;
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);//在按键下方弹出菜单

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值