上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页
摘要: KEY: UTF-16.至少在我的Windows平台+vs2008使用sizeof(WCHAR)已测试就知道了。引用9楼的回复:由实现定义:ISOC++112.3/3...Theexecutioncharactersetandtheexecutionwide-charactersetareimplementation-definedsupersetsofthebasicexecutioncharactersetandthebasicexecutionwide-ch……没看懂,不过确定的是微软的编译器是UTF-16《windows核心编程》ANSIandUnicodeCharacterandSt 阅读全文
posted @ 2013-12-11 16:32 Tup 阅读(1405) 评论(0) 推荐(0)
摘要: 可以的。所以,以下代码就不正确了(修改:PROCESSOR_ARCHITECTURE_AMD64虽然看起来很硬件,但其实是一个软件层次上的tag,而且下面的代码没有问题): if (osvi.dwMajorVersion >= 6) { if (si.wProcessorArchitecture == PROCESSOR_ARCHITECTURE_AMD64) Result = Result + " 64-bit"; else if (si.wProcessorArchitecture == ... 阅读全文
posted @ 2013-12-05 13:34 Tup 阅读(721) 评论(0) 推荐(0)
摘要: #define offsetof(s, m) (size_t)&(((s*)0)->m)注意:"&"这里是取地址符的意思,而不是位运算的与,害的我郁闷了很长时间。。说到底,一种欺骗战术。offsetof 求某个结构体的特定成员在结构体里面的偏移量(s *)0 是骗编译器说有一个指向类(或结构)s的指针,其值为0 &((s *)0)->m 是要取得类s中成员变量m的地址 由于这个类(或结构)的基址为0,这时m的地址当然就是m在s中的偏移了(s *)0 是把0地址转换为s指针类型,然后从这个指针上“取”m成员再取址,而m成员的地址转换后结果就 阅读全文
posted @ 2013-12-05 10:15 Tup 阅读(275) 评论(0) 推荐(0)
摘要: DLL搜索顺序:当前进程的可执行模块所在的目录。当前目录。Windows系统目录。GetSystemDirectory函数检索此目录的路径。Windows目录。GetWindowsDirectory函数检索此目录的路径。PATH环境变量中列出的目录。因此,放到以上任意一个目录下都可以。最简单的是第1个,放到exe文件所在的目录下 阅读全文
posted @ 2013-12-03 11:57 Tup 阅读(2047) 评论(0) 推荐(0)
摘要: 1. appwiz.cpl-->打开或关闭Windows功能-->Telnet客户端、服务器(只勾选客户端是看不到下一步中的telnet服务的)2. services.msc-->open telnet service. 阅读全文
posted @ 2013-12-02 18:33 Tup 阅读(220) 评论(0) 推荐(0)
摘要: 问题:在父窗口中调用CTabCtrl控件的接口SetItemSel()不起作用。原因:调试发现,获取GetClientRect不起作用 因为窗口还没创建 要么说用CDialogImpl啊 有个OnInitDialog函数好办些这个时候只能给一些成员变量 复制 而不能调用函数(例如GetClientRect) 而且就算使用CDialogImpl 也可能出现这种情况解决方法:把设置当前选中的item接口分为内部(SetItemSel)、外部(SetCurSelItem)两种。 内部还负责重绘之类的,外部只负责传值。然后再OnPaint里面最后再调用一下内部的SetItemSel即可。当然内部这个接 阅读全文
posted @ 2013-12-02 14:49 Tup 阅读(390) 评论(0) 推荐(0)
摘要: 所在项目中的定位是一个外观为圆角矩形的TabBtn控件,绘制圆角矩形部分的实现:void CTabBtn::DoPaint(CDCHandle dc)//继承了CDoubleBufferImpl{ Graphics graphics(dc); DrawTabBtn(&graphics);}void CTabBtn::DrawTabBtn(Graphics* graphics){ RECT rect; ::GetClientRect(m_hWnd, &rect); int nItemCount = m_arrItems.size(); int nItemWid... 阅读全文
posted @ 2013-12-02 10:47 Tup 阅读(1388) 评论(0) 推荐(0)
摘要: WM_INITDIALOG 消息是对话框才能收到的消息,表明对话框及其所有子控件都创建完毕了。这个状态肯定是 调用显示对话框的函数之前。1函数原型来源于MSDN:Windows CE 3.0版本WM_INITDIALOG hwndFocus = (HWND) wParam;lInitParam = lParam;2参数hwndFocus接收默认键盘焦点的控件的句柄。系统分配默认键盘焦点,只有当对话框过程,则返回 TRUE。lInitParam指定额外的初始化数据。此数据是作为对用于创建对话框的 CreateDialogIndirectParam、 CreateDialogParam、 Dial 阅读全文
posted @ 2013-11-28 17:48 Tup 阅读(503) 评论(0) 推荐(0)
摘要: 这个逻辑混乱的小弟真是一语中的^_^“小弟才学MFC不久 有个问题想问下高手在SDK风格的 程序中 总有一个逻辑顺序是 注册窗口类-创建窗口-显示窗口-更新窗口-消息循环 这些步骤但是用MFC AppWizard生成的代码 就完全的打乱了这些逻辑结构 我发现每个应用程序都有Oncreate()函数来响应WM_CREATE消息 这个函数就是用来创造窗口的吗 请问注册窗口在什么地方完成的呢 我知道显示窗口 更新窗口和消息循环在CWinApp派生的TheApp中的Initstance()中完成的 所以我的逻辑有点乱 哪个高手能详细和通俗的指教我下 谢谢”OnCreate函数这里相当于标准流程中的 C 阅读全文
posted @ 2013-11-28 17:47 Tup 阅读(499) 评论(0) 推荐(0)
摘要: 只有Dialog类型的窗口才会响应WM_INITDIALOG, CWindowImpl所以不会响应WM_CREATE看来 有必要区别下 CWindowImpl CDialogImpl CFrameWindowImpl CAxDialogImpl 下。 阅读全文
posted @ 2013-11-28 17:46 Tup 阅读(312) 评论(0) 推荐(0)
上一页 1 2 3 4 5 6 7 8 9 ··· 13 下一页