在弄一些字符串处理的问题的时候,往往要用这几个东西变来变去:
CString转成string或者wstring,就用:
CString strC;
//...
wstring wstr = (LPCTST)strC;
string str = (CStringA)strC;
string或者wstring转成CString, 可以:
string str;
wstring wstr;
CString s1(str.c_str()), s2(wstr.c_str());
要注意的就是其实CString也有分CStringW和CStringA2种版本的,不过目前大部分软件已经是unicode版本啦!~
还有一个问题就是windows sdk api ::IsWindowVisible:
在项目中看见一起函数,通过窗口句柄去调用::GetWindowLong来获取该窗口是否具有wm_visible风格。(具有wm_visible风格的窗口一创建就可见,也可以通过调用::ShowWindow函数去显式地具有该风格)
而这2个函数的区别就是,::IsWindowVisible是判断一个窗口是否可见: 因为这取决于当前窗口是否具有wm_visible风格,也取决于它的递归父窗口是否具有wm_visible风格(父窗口不可见,子窗口一定不可见)——注重结果
而项目中的该函数只是判断当前窗口是否具有wm_visible风格仅此而已!!!