使用VS2010更改MFC程序的状态栏

这两天试了不想再用恶心的VC6.0,改用VS2010试了一下,发现区别不大,但是在细节上,貌似VS2010可以使用原来的MFC类,但是似乎总是有问题,不太好用。今天就遇到一个问题,本来是最简单的在状态栏显示鼠标坐标,但是使用CStatusBar指针的的SetPaneText()方法时死活不对,总是报错,Google了半天貌似没有遇到这个问题的,当时我就哭了。。。,难道我的人品这么背,不甘心下,有看了一下CMainFrame代码,发现使用的竟然是CMFCStatusBar,难道这是原因?抱着试一试的想法,把CStatusBar换成CMFCStatusBar,运行一下,没问题了。看来有问题不要怕,多看看代码,问题自然解决。。。

附上在状态栏添加鼠标坐标的过程:

1.在String Table中添加一个新项,名字为IDS_MOUSE_POINT(具体什么名字可以随便起),将其Caption设为"X=0000,Y=0000"(不包括引号)

2.在MainFrm.cpp中indicators声明处添加IDS_MOUSE_POINT,注意不要添加到第一行(如果添加后果我不太清楚),代码如下:

static UINT indicators[] =
{
	ID_SEPARATOR,           // 状态行指示器
	ID_INDICATOR_CAPS,
	ID_INDICATOR_NUM,
	ID_INDICATOR_SCRL,
	IDS_MOUSE_POINT,
};

3.使用Class Wizard添加WM_MOUSEMOVE的相应函数

4.在相应函数中添加代码如下(注意由于我是基于MapX做二次开发,这是MapX的mousemove的相应函数,不过和windows的大同小异,可以参考使用):

void CMy2008302590145View::MouseMoveMapMain(short Button, short Shift, float X, float Y)
{
	// TODO: Add your message handler code here
	double dX,dY;
	m_MapX.ConvertCoord(&X, &Y, &dX, &dY, miScreenToMap);//将屏幕坐标换算为地理坐标

//	CString strMousePos;
//	strMousePos.Format(_T("X=%.4f,Y=%.4F"),dX,dY);

	char* strMousePos;
	strMousePos = new char[256];
	sprintf(strMousePos, "X=%.4f,Y=%.4f", dX, dY);
	CString outStr;
	outStr = strMousePos;
	int len = outStr.GetLength();

	CMainFrame*   pFrame   =   (CMainFrame*)   AfxGetMainWnd(); 
	CMFCStatusBar*   pStatusBar   =   (CMFCStatusBar*)   pFrame-> GetDescendantWindow(AFX_IDW_STATUS_BAR);

	pStatusBar->SetPaneWidth(pStatusBar->CommandToIndex(IDS_MOUSE_POINT), len * 6);
	pStatusBar->SetPaneText(pStatusBar->CommandToIndex(IDS_MOUSE_POINT), outStr,TRUE);

}
这样就完成了,代码比较简单,没写注释,不太明白的话可以查一下MSDN

转载于:https://www.cnblogs.com/madhenry/archive/2011/04/19/2021317.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC(Microsoft Foundation Class)是微软公司开发的一套基于Windows API的C++类库,用于开发Windows平台下的GUI应用程序,具有易于使用、高效稳定等特点。下面是关于使用VS2019开发MFC应用程序的从入门到精通的详细步骤: 1. 安装VS2019:首先需要安装Visual Studio 2019开发环境,并选中MFC组件进行安装。 2. 创建MFC工程:在VS2019中,选择“创建新项目”,在“Visual C++”中选择“MFC应用程序”,然后设置项目名称和存储路径。 3. MFC应用程序框架:MFC应用程序框架由CWinApp、CWinThread、CMainFrame、CView等类组成,其中CWinApp是应用程序类,负责处理应用程序级别的操作,包括初始化、退出等;CWinThread是线程类,负责处理多线程相关的操作;CMainFrame是主窗口类,负责处理主窗口的创建和消息处理等;CView是视图类,负责处理与用户界面相关的操作。 4. MFC应用程序消息处理:MFC应用程序使用消息机制来处理用户交互事件,包括菜单命令、鼠标事件、键盘事件等。在MFC应用程序中,可以通过响应消息来实现特定的操作,例如打开文件、保存文件、复制、粘贴等。 5. MFC应用程序界面设计:MFC应用程序的界面设计可以通过资源编辑器来实现,包括对话框、菜单、工具栏、状态栏等。可以通过资源编辑器来添加和修改这些元素,然后在代码中响应这些元素的事件。 6. MFC应用程序数据存储:MFC应用程序需要处理数据存储和管理,可以使用MFC提供的文件类和数据库类来实现。文件类主要用于文件的读写操作,数据库类主要用于数据库的连接和操作。 7. MFC应用程序调试和优化:在开发MFC应用程序时,需要进行调试和优化,以确保程序的正确性和性能。可以使用VS2019提供的调试工具和性能分析器来定位和解决问题。 总之,通过以上步骤,可以从入门到精通地掌握使用VS2019开发MFC应用程序的技能,从而实现高效、稳定、易用的Windows GUI应用程序的开发。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值