1.绑定窗口时的类型转换
int away; HWND wnd; CString fifteen; long Di; wnd=::FindWindow(L"Notepad",NULL); fifteen.Format(L"%d",wnd);//HWND转CString Di=_tstol((LPCTSTR)fifteen); //CString转long away=dm.BindWindow(Di,L"normal",L"normal",L"normal",0); TRACE(L" 记事本还开着 ");
窗口句柄处的数据类型是Long用FindWindow()API函数获取的窗口句柄是HWND类型,目前能想到的方法就是把HWND类型先转换成CString类型,再把CString类型转为long型。
2.字符串类型选择问题
在MFC工程下字符串类型最好选择CString或者C++的string。此二者相互转换起来比较方便。在想使用string类型需要先导入头文件:
#include <string>
然后可以
using namespace std;
一次性把命名空间中的内容全部导出,这有违命名空间设立的初衷,容易导致混淆,特别是把这句话放入.h头文件后,如果其他.cpp文件也引用此.h文件会出现命名冲突。安全的方法是声明类型时:
std::string pBuff;
这样就声明了一个string类型。
然后用string类型声明一个二维数组用于A星算法作为二维地图
std::string pBuff[11][7] ={ {"0","*","0","0","0","0","0"}, {"0","0","0","0","0","0","0"}, {"0","0","0","0","0","0","0"}, {"0","0","0","0","0","0","0"}, {"0","0","0","0","0","0","0"}, {"0","0","0","0","0","0","0"}, {"0","0","0","0","0","0","0"}, {"0","0","0","0","0","0","0"}, {"0","0","0","0","0","0","0"}, {"0","0","0","0","0","0","0"}, {"0","0","0","0","0","0","0"}, };
然后是string与CString类型之间的转换问题。
string转CString:
CString mistakes;
mistakes=pBuff[0][1].c_str(); //string转CString