(1)VC中消息的的影射的实现:
BEGIN_MESSAGE_MAP(CStuDlg, CDialog)
//{{AFX_MSG_MAP(CStuDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_COMMAND(IDC_ADD,AddData)
ON_NOTIFY(NM_RCLICK, IDC_LIST1, OnRclickList1)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
(2)菜单的弹出实现:
CMenu pmenu;
if (pmenu.LoadMenu(IDR_MENU1))
{
CMenu* pPopup = pmenu.GetSubMenu(0);
ASSERT(pPopup != NULL);
CPoint oPoint;
// 确定鼠标位置以便在该位置附近显示菜单
GetCursorPos( &oPoint );
SetForegroundWindow();
pPopup->TrackPopupMenu(
TPM_LEFTALIGN | TPM_RIGHTBUTTON,
oPoint.x, oPoint.y, this);
}
(3)《热键》ON_MESSAGE(WM_HOTKEY,OnHotkey);
RegisterHotKey(m_hWnd,1688,MOD_CONTROL|MOD_SHIFT,'C');//1688任选,但有范围
LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);
最后还要
UnregisterHotKey(m_hWnd,1688);
GetCurrentTime()得到当前时间。
BOOL RegisterHotKey(
HWND hWnd, // 接收hotkey窗口
int id, // hotkey的id 范围是0x0000到0xBFFF
UINT fsModifiers, // 可以是MOD_ALT MOD_CTRL MOD_WIN
UINT vk // 虚拟键值,就是m_Wap,m_Dlg的值
);
if (message==WM_HOTKEY && wParam==1688){
if(IsWindowVisible())
OnBtnHide();
else
OnShowDlg();
SetForegroundWindow();}
(4)把一组数组转化成长字符串
CString str, strTemp;
for(int i = 0; i < arr.size(); i++)
{
strTemp.format("%d", arr[i]);
str += strTemp;
}