摘要: 把你的Windows任务栏移到屏幕的上方,你就会发现有多少程序会在启动的时候,把自己的标题栏移到任务栏的下方,以至于不能用鼠标移动它,甚至有的窗口还没有系统菜单(Atl + 空格 打开系统菜单,可以移动窗口)。所以,这篇文章我们来讨论一下窗口的位置,以避免这样的事情发生。如果让你写个程序,要把窗口的位置移动到桌面的左上角,我想很多人都会写出如下的代码:MoveWindow(hWnd,0,0,?,?);后面?的位置如何填写呢?很多人就会找到GetWindowRect函数来得到当前窗口的宽度。当然,这么写也不是不可以。我觉得更好的方式是使用SetWindowPos函数。MoveWindow函数有个 阅读全文
posted @ 2013-03-14 14:17 归海一刀 阅读(264) 评论(0) 推荐(0) 编辑
摘要: 对于COM,一般用CoCreateInstance来创建对象,这就要求COM的dll要用regsvr32注册,因为CoCreateInstance是要读注册表信息完成相应操作的。CoCreateInstance主要的工作是读注册表,然后CoLoadLibrary,调用DllGetClassObject,最后CreateInstance创建对象。如果我们自己来实现CoCreateInstance的工作,就可以实现无注册表的COM调用。假设有个简单COM,接口很简单,就是个减法函数。普通COM的代码是这样的://普通COMvoid TestCom1(){cout<<"Test 阅读全文
posted @ 2013-03-14 14:06 归海一刀 阅读(220) 评论(0) 推荐(0) 编辑