1.字符串转换
将LPCTSTR 类型的数据转换成char * 类型的数据,这个是网上搜到的,能用,就是麻烦了一点。讲CString转换为char * 也是一样的。
LPCTSTR lpszPathName;
lpszPathName=(CONST WCHAR *)lpszPathName;
int nLen = wcslen(lpszPathName)+1;
char * PathName=new char[nLen];
WideCharToMultiByte(CP_ACP,0,lpszPathName,nLen,PathName,2*nLen,NULL,NULL);
或CString转换成std::string,再转换成char*也可以。
std::string str(QString.getBuffer());
char temp[10];
strcpy(temp,str.c_str());
将一般的数据类型(int ,char *,float等)转换为CString类型,这个比较简单,可以这样办:
CString str;
str.Format(_T("%d,%s,%f"),int类型数据,(char *)类型数据,float类型数据)
2.得到不同类的对象
在文档类得到框架类对象:
CMainFrame* PFM=(CMainFrame *)AfxGetApp()->m_pMainWnd;
这个比较简单,网上也比较多,一句话就搞定了
在文档类得到视类对象:这个风两步来实现
第一步:文档类得到框架类对象:CMainFrame* PFM=(CMainFrame *)AfxGetApp()->m_pMainWnd;
第二步:使用框架类对象得到视类对象:xxView Pview=(xxView* )PFM->GetActiveView();
上两步即可得到,网上搜到比较多的都是下面的代码:
POSITION pos = GetFirstViewPosition();
CView* pFirstView = GetNextView(pos);
CdicomView *pMyView=(CdicomView*)pFirstView;
这个代码也没错,可以在窗口分割后使用比较方便。
在视类得到框架类的方法
CMainFrame* pMF=(CMainFrame*)AfxGetApp()->m_pMainWnd;