MSDN 文档 (有点)清楚下面关于GDI笔的两个事实: 一个化妆笔(通过CreatePen或ExtCreatePen w / PS_COSMETIC创build)必须是1 单位宽(好,<= 1,但我们不要去那里)。 几何(ExtCreatePen w / PS_GEOMETRIC)笔必须固定(仅PS_SOLID,无PS_DASH等)。 但是,他们可以画粗线。 这在我上面提到的链接中只有9倍的限制(我是愚蠢的)。 我的辩护(坏)评论和(破碎)的逻辑在我的代码导致我相信,否则。 其他一些Googlesearch的文章一定是只写了Windows 9x。 为什么我可以说这些规则,并让GDI愉快地画这些笔? 我可以创build脂肪(例如宽度= 10)化妆笔和虚线几何笔。 哎呀,我可以创build一个虚的几何笔! 这些钢笔似乎通常工作得很好。 我看到的唯一问题是在Polyline中,当我传递非常大的点数组时 – 它渲染的线条非常缓慢。 然而,Polyline在大型数组中的performance总是奇怪 – 它只是与坏笔的行为不同。 (我的其他折线问题可能是另一个问题…) 使用广泛的化妆笔或宽几何图案是否安全?
我怎样才能得到有关什么是正确的活动窗口,当这个改变没有轮询GetActiveWindow或使用全局钩子的通知? 我不喜欢投票,我在C#工作,全局钩子不工作(主要)。
这是一个凌乱的问题,希望你能弄清楚我想要的东西:) 在Qt开源版项目中使用Win32function的最好方法是什么? 目前我已经包含了必要的Windows SDK库,并且手工包含了目录到qmake项目文件。 它在小范围内工作正常,但不方便和繁琐。 那么,我应该把Win32的东西分成一个库还是有一个明智的方法来结合这两个? 还是我忽略了一些Qt方面的简化呢? 编辑 删除了语法的东西,它没有真正相关,只是烦人的。
使用GetSaveFileName。 我指定OFN_EXPLORER标志,但我总是会得到旧的对话框外观,除非我避免使用钩子和模板。 (在OPENFILENAME结构中,lpfnHook和lpfnTemplate(及其各自的“启用”标志) 如果我避免使用一个或另一个,我仍然会得到旧的对话框外观。 我也试过没有模板,但使用钩子…但总是从它返回TRUE(我看到提到“总是返回false”从钩作为获取旧界面的方式)。 但它似乎没有任何效果。 编辑:添加相关的代码: ofn.lStructSize=sizeof(OPENFILENAME); ofn.hInstance=RhInst; ofn.hwndOwner=MainWh; ofn.lpstrFilter=s; ofn.lpstrCustomFilter=null; ofn.nMaxCustFilter=0; ofn.nFilterIndex=sel; ofn.lpstrFile=fname; ofn.nMaxFile=lstrl; ofn.lpstrFileTitle=tfile; ofn.nMaxFileTitle=lstrl; if (path && lstrlen(path)) ofn.lpstrInitialDir=path; else ofn.lpstrInitialDir=drive; lstrcpy(SE_DefExt,ext); ofn.lpstrDefExt=SE_DefExt; if (titleid) ofn.lpstrTitle=title; else ofn.lpstrTitle=null; ofn.lpfnHook=(CommHookProc)MakeProcInstance((FARPROC)SEOpen32Hook,hInst); ofn.lpTemplateName=NULL; ofn.Flags=OFN_SHOWHELP | OFN_OVERWRITEPROMPT | OFN_ENABLEHOOK | OFN_EXPLORER | OFN_PATHMUSTEXIST | OFN_HIDEREADONLY; if(allowfit) { ofn.lpTemplateName = MAKEINTRESOURCE(SAVETOFIT); ofn.Flags |= OFN_ENABLETEMPLATE; } if […]
有谁知道如何获得用户指向他的鼠标段落? 它不应该依赖于使用的应用程序。 一个很好的例子是字典应用程序,当你按住Ctrl键的同时右键单击它时,它将会翻译这个单词。 我很好奇他们是怎么做的,因为我正在考虑创build一个词汇学习工具,它也会记住遇到新词的句子。 谢谢。 更新: 从其他应用程序捕获选定的文本的问题
所以,我正在使用MDI编写一个文本编辑器。 我有一个框架窗口,子窗口和每个子窗口都有一个文本区域窗口。 现在,我的问题是指针。 这不是把自己设置到正确的位图。 所以例如,如果我将指针移动到边框,它正确地变成了左右拖动图标。 这一切都很好 – 但是当我把它移到文本窗口区域时, 它不会变回正常的指针 。 哪一个是无聊的 任何想法为什么指针位图不被更新?
我写了一个小函数,它将使用CreateProcessWithLogonW加载可执行文件的多个实例 伪代码: for ( i=0;i<100;i++) { sprintf(user,"user%i",i); sprintf(pass,"pass%i",i); if(NetUserGetInfo(user,pass)==NOT_FOUND) { NetUserAdd(user,pass); } aaProcessCreateWithLogin("prog.exe",user,pass); } 它工作正常,除了它被限制为32个实例 – 额外的实例失败 – 可以同时启动进程的用户数是否有限制? 谢谢 灰
我正在尝试使用Windows钩子检索另一个应用程序的消息。 我用SetWindowsHookEx安装了一个WH_GETMESSAGE钩子。 这是通过一个DLL完成的。 在我的GetMsgProc函数(应该在目标应用程序收到消息的时候调用它),我想根据消息types采取行动。 但是,我有这个if语句的麻烦。 LRESULT CALLBACK MessageHookProcedure(int code, WPARAM wParam, LPARAM lParam){ if(((MSG*)lParam)->message == WM_COMMAND){ MessageBox(NULL,L"The hook procedure was called",L"Test Window",MB_OK); } return CallNextHookEx(g_MessageHook,code,wParam,lParam); } 出于某种原因,MessageBox从不被创build。 我知道应用程序正在从Spy ++接收WM_COMMAND消息。 如果我拿出IF语句,那么MessageBox就会一遍又一遍地被创build,因为它接收到各种消息。
在本地计算机上研究IPC的Windows邮件之后,我对数据报的最大大小有些困惑。 MSDN说 “一个邮筒是一个存放在内存中的伪造文件,你使用标准的文件函数来访问它,邮件消息中的数据可以是任何forms,但是在计算机之间发送时不能超过424字节。是暂时的,当一个邮筒的所有句柄都closures时,邮筒和它包含的所有数据都被删除。 “当在电脑之间传送”是什么令我困惑。 如果数据只在同一台机器上从一个本地进程发送到另一个进程,是否有最大大小?
我有两个HANDLE,它们是从同一个文件创build的, 在这种情况下,我想用1到100的偏移量写第一个HANDLE, 使用第一手柄从201到300使用第二手柄从101到200, … 我怎样才能使这个操作看起来像一个连续写,没有浪费时间 在HANDLE中定位指针之间?