• 使用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

  • 相关阅读:
    noip2014提高组day2二题题解-rLq
    uva 1606 amphiphilic carbon molecules【把缩写写出来,有惊喜】(滑动窗口)——yhx
    NOIP2008提高组(前三题) -SilverN
    uva 11134 fabled rooks (贪心)——yhx
    NOIP2008提高组火柴棒等式(模拟)——yhx
    NOIP2008 普及组T2 排座椅 解题报告-S.B.S
    判断https
    redis 在centos下的安装部署
    phpstorm常用快捷键
    yii 打印sql
  • 原文地址:https://www.cnblogs.com/madhenry/p/2021317.html
Copyright © 2020-2023  润新知