MFC 界面编程
来源:互联网 发布:ubuntu 10 虚拟机镜像 编辑:程序博客网 时间:2024/05/01 11:44
在状态兰上的左侧加上向左滚动的文字
void CMainFrame::OnTimer(UINT nIDEvent)
{
// TODO: Add your message handler code here and/or call default
static int strID = 0; //字符索引
//达到滚动字幕的末尾
if (strID >= (m_text.GetLength() - 1))
{
strID = 0;
}
m_wndStatusBar.SetPaneText(m_wndStatusBar.CommandToIndex(ID_SEPARATOR), ((LPCSTR) m_text) + strID);
//后移显示的字幕,由于汉字占两位,所以+2
strID = strID + 1;
CFrameWnd::OnTimer(nIDEvent);
}
修改菜单上的文字为位图
m_bitmap.LoadBitmap(IDB_BITMAP1);
CMenu * pMenu=GetMenu();
pMenu->GetSubMenu(4)->ModifyMenu(ID_MENU_BMP, MF_BYCOMMAND, ID_MENU_BMP, &m_bitmap);
修改菜单为复选菜单
void CMainFrame::OnMenu1()
{
m_selected = !m_selected;//更改菜单的选择状态
}
void CMainFrame::OnUpdateMenu1(CCmdUI* pCmdUI)
{
pCmdUI->SetCheck(m_selected);//设置显示菜单的选择状态
}
鼠标点击显示弹出菜单
//单击鼠标右键时的响应函数
void CContextMenuView::OnRButtonDown(UINT nFlags, CPoint point)
{
CMenu contextMenu;
contextMenu.LoadMenu(IDR_CONTEXTMENU);//加载菜单
CMenu *pPopupMenu=contextMenu.GetSubMenu(0);//获得弹出菜单指针
ClientToScreen(&point);//转换鼠标坐标
//弹出菜单
pPopupMenu->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, AfxGetMainWnd());
CView::OnRButtonDown(nFlags, point);
}
禁用菜单选项
EnableMenu
/////////////////////////////////////////////////////////////////////////////
// CEnableMenuJQView message handlers
void CEnableMenuJQView::OnJQstep1()
{
// TODO: Add your command handler code here
MessageBox("step1 finished!","infor",MB_OKCANCEL);
m_selected=!m_selected;
}
void CEnableMenuJQView::OnJQstep2()
{
// TODO: Add your command handler code here
}
void CEnableMenuJQView::OnUpdateJQstep2(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
pCmdUI->Enable(m_selected);
}
全屏显示
void CMainFrame::FullScreen()
{
GetWindowPlacement(&m_oldWinPos);// 得到当前窗口的位置
CRect winRect;// 窗口区域
GetWindowRect(&winRect);// 得到窗口区域
CRect rectClient;
RepositionBars(0, 0xffff, AFX_IDW_PANE_FIRST, reposQuery, &rectClient); // 全屏时隐藏所有的控制条
ClientToScreen(&rectClient);// 将客户坐标映射成屏幕坐标
//获取屏幕分辨率
int fullWidth = GetSystemMetrics(SM_CXSCREEN);
int fullHeight = GetSystemMetrics(SM_CYSCREEN);
//得到全屏显示的窗口位置
m_fullScreenRect.left = winRect.left - rectClient.left;
m_fullScreenRect.top = winRect.top - rectClient.top;
m_fullScreenRect.right = winRect.right - rectClient.right + fullWidth;
m_fullScreenRect.bottom= winRect.bottom - rectClient.bottom + fullHeight;
// 进入全屏显示状态
m_fullScreenFlag = TRUE;// 设置全屏标志
WINDOWPLACEMENT tmp;
tmp.length = sizeof(WINDOWPLACEMENT);
tmp.flags = 0;
tmp.showCmd = SW_SHOWNORMAL;
tmp.rcNormalPosition = m_fullScreenRect;
SetWindowPlacement(&tmp);// 将窗口设置到m_fullScreenRect位置上
}
//This member function is called by the framework to allow your //application to handle a Windows message.
void CMainFrame::OnGetMinMaxInfo(MINMAXINFO FAR* lpMMI)
{
if(m_fullScreenFlag)
{
lpMMI->ptMaxTrackSize.x = m_fullScreenRect.Width();//设置最大跟踪宽度
lpMMI->ptMaxTrackSize.y = m_fullScreenRect.Height();//设置最大跟踪高度
}
CMDIFrameWnd::OnGetMinMaxInfo(lpMMI);
}
// 结束程序窗口全屏显示,恢复窗口原来大小
void CMainFrame::EndFullScreen()
{
if(m_fullScreenFlag)
{
m_fullScreenFlag = FALSE;// 设置全屏状态为FALSE
SetWindowPlacement(&m_oldWinPos);// 退出全屏显示, 恢复原窗口显示
}
}
// 得到当前窗口的现实状态
BOOL CMainFrame::GetScreenState()
{
return m_fullScreenFlag;
}
//对按键进行处理
void CFullScreenMDIView::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
if(nChar == VK_F11)
{
// 获取主框架窗口的指针
CMainFrame* pFrame = (CMainFrame*)AfxGetApp()->m_pMainWnd;
if(pFrame->GetScreenState()) // 如果现在是全屏状态
{
// 调用主窗口类的自定义函数 EndFullScreen,退出全屏显示状态
pFrame->EndFullScreen();
}
else // 不是全屏状态
{
// 调用主窗口类的自定义函数 FullScreen ,进入全屏显示状态
pFrame->FullScreen();
}
}
CView::OnKeyDown(nChar, nRepCnt, nFlags);
}
- MFC界面编程
- MFC 界面编程
- MFC界面编程初体会
- MFC 界面编程 可参考资料
- MFC界面编程技术汇总
- MFC之Ribbon界面编程
- MFC+opencv+win32界面编程
- MFC界面编程 之 全面解读WM_NOTIFY
- MFC界面编程 之 基础概念
- MFC 界面编程 UI美化总结
- MFC界面编程新思路--模仿MATLAB式的界面
- MFC 界面
- MFC界面
- 使用Labview控件的MFC界面编程(一)
- 使用Labview控件的MFC界面编程(二)
- 几种常用的MFC界面编程技巧
- MFC界面编程2011年9月22日
- MFC界面与控件编程常用函数记录
- Windows命令行参数的转义(dos/cmd.exe下输入双引号竖扛等特殊字符)
- Android键盘和触摸事件处理
- 类中变量 代码块 构造方法 的加载顺序
- 再来一个end——好像很有用
- 具说看完这21个故事的人,30岁前都成了亿万富翁。
- MFC 界面编程
- 位运算操作符
- SQL面试题
- 疑犯在警局内跳楼身亡 此前因聚赌携枪被捕
- yaffs文件系统在2.6内核上的移植--操作步骤(转载)
- Gedit快捷键
- FatMouse' Trade
- ASP.NET Application_Error错误日志写入
- Xcode 常用编译选项设置