有谁知道QQ等聊天软件中,表情框(就是显示所有表情图片的下拉框)是怎么实现的吗? 有谁知道QQ等聊天软件中,表情框(就是显示所有表情图片的下拉框)是怎么实现的吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我曾做了一个具有下拉菜单,看对你有没有帮助:先在主框架类的OnCreate消息函数里创建具有下拉式风格的按钮 m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS); DWORD dwStyle=m_wndToolBar.GetButtonStyle(m_wndToolBar.CommandToIndex( ID_HATCHED)); dwStyle |=TBSTYLE_DROPDOWN; m_wndToolBar.SetButtonStyle(m_wndToolBar.CommandToIndex(ID_HATCHED),dwStyle);再手动添加消息函数afx_msg void OnToolbarDropDown(NMTOOLBAR* pnmh,LRESULT* plRes);同时在消息队列里:ON_NOTIFY(TBN_DROPDOWN,AFX_IDW_TOOLBAR,OnToolbarDropDown)函数实现:void CMainFrame::OnToolbarDropDown(NMTOOLBAR* pnmh,LRESULT* plRes){ CWnd *pWnd; UINT nID; //在工具栏按钮中切换,寻找需要加入下拉式菜单的按钮 switch(pnmh->iItem) { case ID_HATCHED: pWnd=&m_wndToolBar; nID=IDR_HATCH; break; default: return; } CMenu menu; menu.LoadMenu(nID); CMenu* pPopup=menu.GetSubMenu(0); ASSERT(pPopup); CRect rc; pWnd->SendMessage(TB_GETRECT,pnmh->iItem,(LPARAM)&rc); pWnd->ClientToScreen(&rc); pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON| TPM_VERTICAL,rc.left,rc.bottom,this,&rc);}ps:alon21(漂一族.Alon)老兄:能给我一份吗?谢谢!![email protected] 我怎么发现有些帖子里边的回复不见了?难道是被抽了? 怎么添加EDIT中的内容 头痛的排序, 一个很多mm的地方. 在下最近欲购一硬盘,各位多说说看法,来者有分! 如何在SunOS中返回正确的FTP文件名,请高手赐教!!! ExitWindows()究竟怎么用?太简单的问题,赶快来答! 菜鳥問:如何使用DateTimePicker控件?? 请教RTX插件开发问题。 看到一段代码与大家共享,用窗口过程实现多线程. 在程序中 有一个自建的对话框,在此对话框类中如何得到此程序中应用程序类的指针? 怎么实现界面上文字的滚动啊,解决给分!
先在主框架类的OnCreate消息函数里创建具有下拉式风格的按钮
m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
DWORD dwStyle=m_wndToolBar.GetButtonStyle(m_wndToolBar.CommandToIndex(
ID_HATCHED));
dwStyle |=TBSTYLE_DROPDOWN;
m_wndToolBar.SetButtonStyle(m_wndToolBar.CommandToIndex(ID_HATCHED),dwStyle);再手动添加消息函数afx_msg void OnToolbarDropDown(NMTOOLBAR* pnmh,LRESULT* plRes);
同时在消息队列里:ON_NOTIFY(TBN_DROPDOWN,AFX_IDW_TOOLBAR,OnToolbarDropDown)
函数实现:
void CMainFrame::OnToolbarDropDown(NMTOOLBAR* pnmh,LRESULT* plRes)
{
CWnd *pWnd;
UINT nID; //在工具栏按钮中切换,寻找需要加入下拉式菜单的按钮
switch(pnmh->iItem)
{
case ID_HATCHED:
pWnd=&m_wndToolBar;
nID=IDR_HATCH;
break;
default:
return;
} CMenu menu;
menu.LoadMenu(nID);
CMenu* pPopup=menu.GetSubMenu(0);
ASSERT(pPopup); CRect rc;
pWnd->SendMessage(TB_GETRECT,pnmh->iItem,(LPARAM)&rc);
pWnd->ClientToScreen(&rc);
pPopup->TrackPopupMenu(TPM_LEFTALIGN|TPM_LEFTBUTTON|
TPM_VERTICAL,rc.left,rc.bottom,this,&rc);
}ps:alon21(漂一族.Alon)老兄:能给我一份吗?谢谢!!
[email protected]