精华内容
下载资源
问答
  •   获取MFC属性窗口CMFCPropertyGridProperty中某个item的时,如果不小心写错了类型,就会导致获取的结果不正确,原因就是COleVariant其实继承自一个特殊的结构体tagVARIANT。 COleVariant类声明 ···C++ ...

      获取MFC属性窗口CMFCPropertyGridProperty中某个item的值时,如果不小心写错了类型,就会导致获取的结果不正确,原因就是COleVariant其实继承自一个特殊的结构体tagVARIANT。

    • COleVariant类声明
    class COleVariant : public tagVARIANT
    {
    // Constructors
    public:
    
        COleVariant();
     ...
    
        COleVariant(BYTE nSrc);
        COleVariant(short nSrc, VARTYPE vtSrc = VT_I2);
        COleVariant(long lSrc, VARTYPE vtSrc = VT_I4);
        COleVariant(const COleCurrency& curSrc);
    
        COleVariant(LONGLONG nSrc);
        COleVariant(ULONGLONG nSrc);
    
        COleVariant(float fltSrc);
        COleVariant(double dblSrc);
        COleVariant(const COleDateTime& timeSrc);
    
        COleVariant(const CByteArray& arrSrc);
        COleVariant(const CLongBinary& lbSrc);
        COleVariant(LPCITEMIDLIST pidl);
    public:
    
        const COleVariant& operator=(BYTE nSrc);
        const COleVariant& operator=(short nSrc);
        const COleVariant& operator=(long lSrc);
        const COleVariant& operator=(const COleCurrency& curSrc);
    
        const COleVariant& operator=(LONGLONG nSrc);
        const COleVariant& operator=(ULONGLONG nSrc);
    
        const COleVariant& operator=(float fltSrc);
        const COleVariant& operator=(double dblSrc);
        const COleVariant& operator=(const COleDateTime& dateSrc);
    
    // Implementation
    public:
        ~COleVariant();
    };
    • tagVARIANT定义
    struct tagVARIANT
        {
        union 
            {
            struct __tagVARIANT
                {
                VARTYPE vt;
                WORD wReserved1;
                WORD wReserved2;
                WORD wReserved3;
                union 
                    {
                    LONGLONG llVal;
                    LONG lVal;
                    BYTE bVal;
                    SHORT iVal;
                    FLOAT fltVal;
                    DOUBLE dblVal;
                    VARIANT_BOOL boolVal;
                    _VARIANT_BOOL bool;
                    SCODE scode;
                    CY cyVal;
                    DATE date;
                    BSTR bstrVal;
                    IUnknown *punkVal;
                    IDispatch *pdispVal;
                    SAFEARRAY *parray;
                    BYTE *pbVal;
                    SHORT *piVal;
                    LONG *plVal;
                    LONGLONG *pllVal;
                    FLOAT *pfltVal;
                    DOUBLE *pdblVal;
                    VARIANT_BOOL *pboolVal;
                    _VARIANT_BOOL *pbool;
                    SCODE *pscode;
                    CY *pcyVal;
                    DATE *pdate;
                    BSTR *pbstrVal;
                    IUnknown **ppunkVal;
                    IDispatch **ppdispVal;
                    SAFEARRAY **pparray;
                    VARIANT *pvarVal;
                    PVOID byref;
                    CHAR cVal;
                    USHORT uiVal;
                    ULONG ulVal;
                    ULONGLONG ullVal;
                    INT intVal;
                    UINT uintVal;
                    DECIMAL *pdecVal;
                    CHAR *pcVal;
                    USHORT *puiVal;
                    ULONG *pulVal;
                    ULONGLONG *pullVal;
                    INT *pintVal;
                    UINT *puintVal;
                    struct __tagBRECORD
                        {
                        PVOID pvRecord;
                        IRecordInfo *pRecInfo;
                        }   __VARIANT_NAME_4;
                    }   __VARIANT_NAME_3;
                }   __VARIANT_NAME_2;
            DECIMAL decVal;
            }   __VARIANT_NAME_1;
        } ;

    可以看到tagVARIANT内部是一个union,union的大小是里面成员最大的一个的大小,union是共享内存的,在某个时刻只能有一个值是有效的。
    因此在用COleVariant获取属性值时,最初的属性值设置为什么类型就要用tagVARIANT对应的成员去获取,如果short用double去获取,获取出来的结果是错误的。

        // float类型
        CMFCPropertyGridProperty* pPropItem1; 
        pPropItem1 = new CMFCPropertyGridProperty(_T("float类型"), (_variant_t)(float)12.3, _T(""));
        COleVariant val1 = pPropItem1->GetValue();
        float fValue = val1.fltVal;
        // double类型
        CMFCPropertyGridProperty* pPropItem2; 
        pPropItem2 = new CMFCPropertyGridProperty(_T("double类型"), (_variant_t)(double)212.3, _T(""));
        COleVariant val2 = pPropItem2->GetValue();
        double dValue = val2.dblVal;
        // long类型
        CMFCPropertyGridProperty* pPropItem3; 
        pPropItem3 = new CMFCPropertyGridProperty(_T("long类型"), (_variant_t)(long)100, _T(""));
        COleVariant val3 = pPropItem3->GetValue();
        long lValue = val3.lVal;
    • union
    union MyUnion
    {
        int n;
        float f;
        double d;
    };
    
    int main(int argc, _TCHAR* argv[])
    {
    
        MyUnion un;
        un.n = 10;    // 此时联合体中n为10
        un.d = 3.14;  // 此时联合体中d为3.14,而n为0
        int n;
        n = un.n;
        return 0;
    }
    展开全文
  • MFC获取各种视图指针的方法

    千次阅读 2012-10-31 08:55:23
    VC中编程对于刚刚开始学习的同学,最大的障碍和问题就是消息机制和指针获取与操作。其实这些内容基本上是每本VC学习工具书上必讲的内容,而且通过MSDN很多问题都能解决。下面文字主要是个人在编程中指针使用的一些...

    VC中编程对于刚刚开始学习的同学,最大的障碍和问题就是消息机制和指针获取与操作。其实这些内容基本上是每本VC学习工具书上必讲的内容,而且通过MSDN很多问题都能解决。下面文字主要是个人在编程中指针使用的一些体会,说的不当的地方请指正。

    一般我们使用的框架是VC提供的Wizard生成的MFC App Wizard(exe)框架,无论是多文档还是单文档,都存在指针获取和操作问题。下面这节内容主要是一般的框架,然后再讲多线程中的指针使用。使用到的类需要包含响应的头文件。

    首先一般获得本类(视,文档,对话框都支持)实例指针this,用this的目的,主要可以通过类中的函数向其他类或者函数中发指针,以便于在非本类中操作和使用本类中的功能。

    1)在View中获得Doc指针

    CYouSDIDoc *pDoc=GetDocument() //一个视只能有一个文档。

    2) 在App中获得MainFrame指针

    CWinApp 中的 m_pMainWnd变量就是MainFrame的指针也可以:

    CMainFrame *pMain =(CMainFrame *)AfxGetMainWnd();

    4) 获得View(已建立)指针

    CMainFrame *pMain=(CmaimFrame *)AfxGetApp()->m_pMainWnd;

    CyouView *pView=(CyouView *)pMain->GetActiveView();

    5) 获得当前文档指针

    CDocument * pCurrentDoc =(CFrameWnd *)m_pMainWnd->GetActiveDocument();

    6) 获得状态栏与工具栏指针

    CStatusBar * pStatusBar=(CStatusBar *)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_STATUS_BAR);

    CToolBar * pToolBar=(CtoolBar *)AfxGetMainWnd()->GetDescendantWindow(AFX_IDW_TOOLBAR);

    7) 如果框架中加入工具栏和状态栏变量还可以这样

    (CMainFrame *)GetParent()->m_wndToolBar; (CMainFrame *)GetParent()->m_wndStatusBar;

    8) 在Mainframe获得菜单指针

    CMenu *pMenu=m_pMainWnd->GetMenu();

    9) 在任何类中获得应用程序类用MFC全局函数AfxGetApp()获得。

    10)从文档获得视图类指针目的一般为了控制同一文档的多个视图的定位问题,我的体会特别是文字处理CEditView当产生多个视图类时,这个功能是非常需要的。

    CDocument类提供了两个函数用于视图类的定位: GetFirstViewPosition()和GetNextView()

    virtual POSITION GetFirstViewPosition() const; virtual CView* GetNextView(POSITION& rPosition) const;        

    注意:GetNextView()括号中的参数用的是引用方式,因此执行后值可能改变。 GetFirstViewPosition()用于返回第一个视图位置(返回的并非视图类指针,而是一个POSITION类型值),GetNextView()有两个功能:返回下一个视图类的指针以及用引用调用的方式来改变传入的POSITION类型参数的值。很明显,在Test程序中,只有一个视图类,因此只需将这两个函数调用一次即可得到CTestView的指针如下(需定义一个POSITION结构变量来辅助操作):

    CTestView* pTestView;

    POSITION pos=GetFirstViewPosition();

    pTestView=GetNextView(pos);

    这样,便可到了CTestView类的指针pTestView.执行完几句后,变量pos=NULL,因为没有下一个视图类,自然也没有下一个视图类的POSITION.但是这几条语句太简单,不具有太强的通用性和安全特征;当象前面说的那样,当要在多个视图为中返回某个指定类的指针时,我们需要遍历所有视图类,直到找到指定类为止。判断一个类指针指向的是否某个类的实例时,可用IsKindOf()成员函数时行检查,如: pView->IsKindOf(RUNTIME_CLASS(CTestView)); 即可检查pView所指是否是CTestView类。有了以上基础,我们已经可以从文档类取得任何类的指针。为了方便,我们将其作为一个文档类的成员函数,它有一个参数,表示要获得哪个类的指针。

    实现如下:

    CView* CTestDoc::GetView(CRuntimeClass* pClass)

    {

         CView* pView;

          POSITION pos=GetFirstViewPosition();

          while(pos!=NULL)

         {

            pView=GetNextView(pos);

            if(pView->IsKindOf(pClass))

                break;

          }

          if(!pView->IsKindOf(pClass)){ AfxMessageBox("Connt Locate the View.\r\n http://www.VCKBASE.com");

           return NULL;

       }

    return pView;

    }

    其中用了两次视图类的成员

    函数IsKindOf()来判断,是因为退出while循环有三种可能:

    1.pos为NULL,即已经不存在下一个视图类供操作;

    2.pView已符合要求。

    1和2同是满足。这是因为GetNextView()的功能是将当前视图指针改变成一个视图的位置同时返回当前视图指针,因此pos是pView的下一个视图类的POSITION,完全有可能既是pos==NULL又是pView符合需要。当所需的视图是最后一个视图是最后一个视图类时就如引。因此需采用两次判断。使用该函数应遵循如下格式(以取得CTestView指针为例):

    CTestView* pTestView=(CTestView*)GetView(RUNTIME_CLASS(CTestView));

    RUNTIME_CLASS是一个宏,可以简单地理解它的作用:将类的名字转化为CRuntimeClass为指针。至于强制类型转换也是为了安全特性考虑的,因为从同一个基类之间的指针类型是互相兼容的。这种强制类型转换也许并不必要,但能避免一些可能出现的麻烦。

    3.从一个视图类取得另一视图类的指针综合1和2,很容易得出视图类之间互相获得指针的方法:就是用文档类作中转,先用1的方法得到文档类的指针,再用2的方法,以文档类的视图定位函数取得另一个视图类。同样,可以实现成一个函数:(假设要从CTestA V i ew中取得指向其它视图类的指针)

    CView* CTestA V i ew::GetView(CRuntimeClass* pClass) {

    CTestDoc* pDoc=(CTestDoc*)GetDocument();

    CView* pView; POSITION pos=pDoc->GetFirstViewPosition();

    while(pos!=NULL)

    {

         pView=pDoc->GetNextView(pos);

        if(pView->IsKindOf(pClass)) break;

    }

    if(!pView->IsKindOf(pClass))

    {

    AfxMessageBox("Connt Locate the View.");

    return NULL;

    }

    return pView;

    }

    这个函数和2中的GetView()相比,一是多了第一句以取得文档类指针,二是在GetFirstViewPosition()和GetNextView()前加上了文档类指针,以表示它们是文档类成员函数。有了此函数;当要从CTestA V i ew中取得CTestBView的指针时,只需如下:CTestBView* pTestbView=(CTestView*)GetView(RUNTIME_CLASS(CTestBView));

    11)对于单文档中也可以加入多个文档模板,但是一般的开发就使用MDI方式开发多文档模板,其方法与上述视图的获取方法很接近,这里稍做解释,如果不清楚,请查阅MSDN,(以下四个内容(11、12、13、14)来源:http://sanjianxia.myrice.com/vc/vc45.htm)可以用CWinApp::GetFirstDocTemplatePostion获得应用程序注册的第一个文档模板的位置;利用该值来调用CWinApp::GetNextDocTemplate函数,获得第一个CDocTemplate对象指针。 POSITION GetFirstDocTemplate( ) const; CDocTemplate *GetNextDocTemplate( POSITION & pos ) const; 第二个函数返回由pos 标识的文档模板。POSITION是MFC定义的一个用于迭代或对象指针检索的值。通过这两个函数,应用程序可以遍历整个文档模板列表。如果被检索的文档模板是模板列表中的最后一个,则pos参数被置为NULL。

    12)一个文档模板可以有多个文档,每个文档模板都保留并维护了一个所有对应文档的指针列表。用CDocTemplate::GetFirstDocPosition函数获得与文档模板相关的文档集合中第一个文档的位置,并用POSITION值作为CDocTemplate::GetNextDoc的参数来重复遍历与模板相关的文档列表。函数原形为: viaual POSITION GetFirstDocPosition( ) const = 0; visual CDocument *GetNextDoc(POSITION & rPos) const = 0; 如果列表为空,则rPos被置为NULL.

    13)在文档中可以调用CDocument::GetDocTemplate获得指向该文档模板的指针。函数原形如下: CDocTemplate * GetDocTemplate ( ) const; 如果该文档不属于文档模板管理,则返回值为NULL。

    14)一个文档可以有多个视。每一个文档都保留并维护一个所有相关视的列表。CDocument::AddView将一个视连接到文档上,将该视加入到文档相联系的视的列表中,并将视的文档指针指向该文档。当有File/New、File/Open、Windows/New或Window/Split的命令而将一个新创建的视的对象连接到文档上时, MFC会自动调用该函数,框架通过文档/视的结构将文档和视联系起来。当然,程序员也可以根据自己的需要调用该函数。 Virtual POSITION GetFirstViewPosition( ) const; Virtual CView * GetNextView( POSITION &rPosition) cosnt; 应用程序可以调用CDocument::GetFirstViewPosition返回与调用文档相联系的视的列表中的第一个视的位置,并调用CDocument::GetNextView返回指定位置的视,并将rPositon的值置为列表中下一个视的POSITION值。如果找到的视为列表中的最后一个视,则将rPosition置为NULL.

    15)从一个视图类取得另一视图类的指针这个应用在多视的应用程序中很多见,一般如果自己在主程序或者主框架中做好变量记号,也可以获得,还有比较通用的就是用文档类作中转,以文档类的视图遍历定位,取得另一个视图类。这个功能从本文第10项中可以得到。

    16)获取分割视图中各个视图的指针

    CSplitterWnd m_wndSplitter;

    m_wndSplitter.CreateStatic(this, 1, 2);//分割成一行两列

    m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftPaneView), CSize(10, 10), pContext);

    m_wndSplitter.CreateView(0, 1, RUNTIME_CLASS(CRightPaneFrame), CSize(0, 0), pContext); //获取左边视图的两种方法

    CLeftPaneView* pLeftPaneView = (CLeftPaneView*) m_wndSplitter.GetPane(0,0); //上一句可以用下句代替: //

    CLeftPaneView* pLeftPaneView = (CLeftPaneView *)GetActiveView(); //获取右边视图

    pLeftPaneView->m_pRightPaneFrame = (CRightPaneFrame*) m_wndSplitter.GetPane(0,1);

    在View中获得MainFrame指针

    CMainFrame *pMain=(CmaimFrame *)AfxGetApp()->m_pMainWnd; or ((CMainFrame *)GetParent())->m_hWnd

     

    http://www.cnblogs.com/shuiren/archive/2012/02/24/2366836.html

    展开全文
  • 这里说明了如何获取当前可执行文件的目录如何获取,从而可以通过对字符串的操作得到其他相关的路径信息。

    在MFC和Console下获取当前执行文件路径的方法

    一、在MFC下可以调用函数GetModuleFileName

    头文件include Windows.h

    DWORD GetModuleFileName(

      HMODULE hModule,//装载一个程序实例的句柄。如果该参数为NULL,该函数返回该当前应用程序全路径
      LPTSTR lpFilename,//是你存放返回的名字的内存块的指针,是一个输出参数
      DWORD nSize//装载到缓冲区lpFileName的最大值
      );

    使用过程中需要去掉**.exe:

    方法一:GetModuleFileName(NULL, fullPath,100)
     strPath=(CString)fullPath;  
      int position=strPath.ReverseFind('\\'); //反向查找"\"所在的位置
      strPath=strPath.Left(position+1); //或者strpath=strPath.Left(position)+_T("\\"); 

    方法二:GetModuleFileName(NULL, szFilePath, MAX_PATH); 
    m_filepath=CString(szFilePath); 
    int len=m_filepath.GetLength();
    int i=0; 
    for (i=len-1;i>-1;i--) 

    if(m_filepath[i]!= '\\')
    m_filepath.Delete(i,1); 
    else  
    break; 
    }  

    之后可以直接利用“+”实现字符串的衔接,如:CString pathresult=m_filepath+"result.txt";

    二、在console程序中,依然可以调用GetModuleFileName,但是我只添加了#include <afx.h>头文件,但是可以运行,不知道合理不合理。

            int  pathlen = ::GetModuleFileName(NULL,pathbuf,100);   
      // 替换掉单杠
      while(TRUE)
      {
      if(pathbuf[pathlen--]=='\\')
      break;
      }
      pathbuf[++pathlen]=0x0;//添加结束符
       strcat(pathbuf,"\\result.txt");//后面衔接要存储的文档名。开始用数组下标一个一个字符写进去,笨死了,忘了基本的c函数。

    三、1、字符串的衔接
    strcat函数说明:
    extern char *strcat(char *dest,char *src);
    把src所指字符串添加到dest结尾处(覆盖dest结尾处的'\0')并添加'\0'。
    头文件:
      #include <string.h>
      在C++中,则存在于<cstring>头文件中。
    2、字符串的复制
    strcpy函数说明:
    extern char *strcpy(char *dest,char *src);
    把src所指由NULL结束的字符串复制到dest所指的数组中。
    头文件:
    同上!!

    展开全文
  • mfc 获取CPU名称、内核数目、主频

    千次阅读 2018-04-13 11:07:14
    //获取ProcessorNameString字段 if (ERROR_SUCCESS == regkey.QueryStringValue(_T("ProcessorNameString"),chCPUName,&dwSize)) { chProcessorName = chCPUName; } //查询CPU主频 DWORD dwValue; ...
    void CGetSysInfo::GetCpuInfo(CString &chProcessorName,CString &chProcessorType,DWORD &dwNum,DWORD &dwMaxClockSpeed)
    {
    	CString strPath=_T("HARDWARE\\DESCRIPTION\\System\\CentralProcessor\\0");//注册表子键路径  
    	CRegKey regkey;//定义注册表类对象  
    	LONG lResult;//LONG型变量-反应结果  
    	lResult=regkey.Open(HKEY_LOCAL_MACHINE,LPCTSTR(strPath),KEY_ALL_ACCESS); //打开注册表键  
    	if (lResult!=ERROR_SUCCESS)  
    	{  
    		return;  
    	}  
    	WCHAR chCPUName[50] = {0};  
    	DWORD dwSize=50;   
    
    	//获取ProcessorNameString字段值  
    	if (ERROR_SUCCESS == regkey.QueryStringValue(_T("ProcessorNameString"),chCPUName,&dwSize))  
    	{  
    		chProcessorName = chCPUName;  
    	}  
    
    	//查询CPU主频  
    	DWORD dwValue;  
    	if (ERROR_SUCCESS == regkey.QueryDWORDValue(_T("~MHz"),dwValue))  
    	{  
    		dwMaxClockSpeed = dwValue;  
    	}  
    	regkey.Close();//关闭注册表  
    	//UpdateData(FALSE);  
    
    	//获取CPU核心数目  
    	SYSTEM_INFO si;  
    	memset(&si,0,sizeof(SYSTEM_INFO));  
    	GetSystemInfo(&si);  
    	dwNum = si.dwNumberOfProcessors;  
    
    	switch (si.dwProcessorType)  
    	{  
    	case PROCESSOR_INTEL_386:  
    		{  
    			chProcessorType.Format(_T("Intel 386 processor"));  
    		}  
    		break;  
    	case PROCESSOR_INTEL_486:  
    		{  
    			chProcessorType.Format(_T("Intel 486 Processor"));  
    		}  
    		break;  
    	case PROCESSOR_INTEL_PENTIUM:  
    		{  
    			chProcessorType.Format(_T("Intel Pentium Processor"));  
    		}  
    		break;  
    	case PROCESSOR_INTEL_IA64:  
    		{  
    			chProcessorType.Format(_T("Intel IA64 Processor"));  
    		}  
    		break;  
    	case PROCESSOR_AMD_X8664:  
    		{  
    			chProcessorType.Format(_T("AMD X8664 Processor"));  
    		}  
    		break;  
    	default:  
    		chProcessorType.Format(_T("未知"));  
    		break;  
    	}
    }

    展开全文
  • MFC获取组合框中元素的索引

    千次阅读 2013-05-03 23:33:27
    MFC中组合框控件的使用 分类: Windows(C/C++,MFC,C#) 2011-07-18 23:431254人阅读 评论(1)收藏 举报 mfc 由于是第一次使用组合框, 今天要使用组合框时还真是波折不少,所以将过程总结一下,避免下次...
  • MFC指针的获取

    万次阅读 2009-01-06 08:42:00
    1、获取应用程序指针CMyApp* pApp=(CMyApp*)AfxGetApp();2、获取主框架指针CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针CMainFrame* pMainFrame = (CMainFrame*)(AfxGetApp()->m_pMainWnd);或者CMainFrame...
  • 获取应用程序指针 CMyApp* pApp=(CMyApp*)AfxGetApp(); 2、获取主框架指针 CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针 CMainFrame* pMainFrame = (CMainFrame*)(AfxGe
  • MFC对话框最大化实现

    千次阅读 2016-06-02 16:19:01
    对话框最大
  • mfc获取当前窗口大小的方法

    千次阅读 2008-05-07 16:52:00
    mfc获取当前窗口大小的方法:代码如下:...//得到相对坐标其中rect.right为x坐标的最大值,rect.bottom为y坐标的最大值(0,0)为窗口左上角的点坐标。在当前窗体中显示鼠标当前坐标的方法:代码如下:CString str; 
  • mfc各种指针的获取

    2011-04-20 11:21:00
    <br />    mfc各种指针的获取 转自:http://hi.baidu.com.sixxs.org/eagle_shuai/blog/item/325c3abfb763800619d81f90.html<br />chilli 的 MFC指针的获取 1、获取应用程序指针 ...
  • VC++MFC 窗口最大

    2014-04-07 23:10:20
    VC++MFC 窗口最大化、最小化的实现!  当利用AppWizard生成运用程序框架时,VC++已经为我们在标题条上做好了最大化,最小化及恢复按钮。  但有时我们也想在其它地方使用这些功能。这就可采用下面的办法。  在...
  • MFC获取各种类指针的方法获得各种视图指针如下1) 在View中获得Doc指针 2) 在App中获得MainFrame指针 3) 在View中获得MainFrame指针4) 获得View(已建立)指针
  • mfc获取当前窗口大小的方法:

    千次阅读 2019-07-27 08:22:02
    代码如下: CRect rect; GetWindowRect(&...其中rect.right为x坐标的最大值,rect.bottom为y坐标的最大值 (0,0)为窗口左上角的点坐标。 在当前窗体中显示鼠标当前坐标的方法: 代码如下: CString str;...
  • MFC各种指针的获取 1、获取应用程序指针 CMyApp* pApp=(CMyApp*)AfxGetApp(); 2、获取主框架指针 CWinApp 中的公有成员变量m_pMainWnd 就是主框架的指针 CMainFrame* pMainFrame = (CMainFrame*)...
  • mfc获取当前窗口大小的方法:代码如下:CRect rect;...//得到相对坐标其中rect.right为x坐标的最大值,rect.bottom为y坐标的最大值(0,0)为窗口左上角的点坐标。在当前窗体中显示鼠标当前坐标的方法:代码如下...
  • MFC 实现对话框最大

    2016-03-10 12:40:17
    MFC 实现对话框最大
  • chilli 的 MFC指针的获取 1、获取应用程序指针 CMyApp* pApp=(CMyApp*)AfxGetApp(); 2、获取主框架指针 CWinApp 中的公有成员变量 m_pMainWnd 就是主框架的指针 CMainFrame* ...
  • VC 中编程对于刚刚开始学习的同学,最大的障碍和问题就是消息机制和指针获取与操作。其实这 些内容基本上是每本 VC 学习工具书上必讲的内容,而且通过 MSDN 很多问题都能解决。 下面文字 主要是个人在编程中指针...
  • MFC -eidt设置最大size

    2017-03-07 19:25:44
    CEdit *pEdit1 = (CEdit*)GetDlgItem(IDC_EDIT_DEMO); pEdit1->SetLimitText(UINT_MAX);  GetDlgItem 获取一个对话框的对象 SetLimitText 设置 文本最大值
  • 第二步、在OnInitDialog()中 计算出当前对话框的大小与最大化后大小 [cpp]   view plain copy CRect rect;  ::GetWindowRect(m_hWnd,rect); //这里m_hWnd为窗口句柄...
  • VC++MFC 窗口最大化、最小化的实现!

    万次阅读 2012-09-02 13:44:29
    VC++MFC 窗口最大化、最小化的实现!  当利用AppWizard生成运用程序框架时,VC++已经为我们在标题条上做好了最大化,最小化及恢复按钮。  但有时我们也想在其它地方使用这些功能。这就可采用下面的办法。  在...
  • MFC各种视图指针的获取

    千次阅读 2007-10-12 11:46:00
    网页加载中...... 标题 MFC获得各种视图指针的方法 类别网络编程
  • 1、若是使用其他接口函数直接调用下拉框的下拉处理函数,则对应的GetCount()数量不会有变化,除非重新对下拉框进行ResetContent()和InsertString()操作,然后再使用GetCount()才会得到实际的。 2、且GetCurSel()...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,422
精华内容 4,168
关键字:

mfc获取最大值