jjzjj

createwindow

全部标签

c++ - 即使我获得类窗口的句柄,BringWindowToTop 也不起作用

我正在通过以下方法注册我的类(class):BOOLCNDSClientDlg::InitInstance(){//RegisterWindowUpdatedon16thNov2010,@Subhen//RegisterouruniqueclassnamethatwewishtouseWNDCLASSwndcls;memset(&wndcls,0,sizeof(WNDCLASS));wndcls.style=CS_DBLCLKS|CS_HREDRAW|CS_VREDRAW;wndcls.lpfnWndProc=::DefWindowProc;wndcls.hInstance=AfxGe

windows - 将Win32封装在一个类中——在CreateWindow中传递类指针

我看了很多关于这个主题的教程和帖子,他们都说我在我的CreateWindowEx()函数中传递类实例指针(this),然后存储它在窗口过程函数中,当WM_NCCREATE消息被发送时。我猜这是因为WM_NCCREATE应该是自创建窗口以来发送到窗口过程的第一条消息。几个问题/注意事项:通过调试,我了解到实际上WM_GETMINMAXINFO是第一条发送的消息,在WM_NCCREATE之前(至少在我的机器上是这样).这是否意味着我应该监听此消息而不是WM_NCCREATE?根据this热门文章,大家之所以在收到消息WM_NCCREATE后调用SetWindowLongPtr()是因为If

windows - 如何使用资源文件 (*.rc) 来设置基于对话框的应用程序的样式

如何使用资源文件(*.rc)来设置基于对话框的应用程序的样式?我可以使用CreateWindow或CreateWindowEx创建应用程序的主窗口。CreateWindow或CreateWindowEx的一些参数定义了对话框的样式。但我想使用资源文件(*.rc)来设置样式,而不是将样式参数传递给函数。有人可以给我一些片段吗?有人说我可以调用DialogBox,并为样式模板提供第二个参数。这是否会在CreateWindow和*.rc文件之间造成冲突?或者我可以同时使用它们吗? 最佳答案 使用CreateDialog.它处理包装对Cre

c++ - 如何仅根据屏幕大小创建一个窗口,不包括使用 C++/Windows 的窗口边框?

当使用CreateWindow(...)创建窗口时,需要窗口宽度和高度,我必须输入值656和516,而不是640和480,以便计算用于窗口边框。我想知道是否有一种方法可以仅基于不包括边框的窗口部分创建一个窗口,特别是考虑到如果不同版本的窗口具有不同大小的边框,则程序可能会在以下情况下显示不同我在所说的不同版本上运行它(即:如果用户的Windows版本具有不同大小的边框,则使用640-object.width将使对象不完全位于屏幕边缘)。那么有没有一种方法可以仅基于屏幕上与程序相关的部分创建一个窗口,或者至少是一个类似于GetVericalBorder()/的函数GetHorizo​​n

c++ - 获取准确的窗口区域大小 - CreateWindow 窗口大小不是正确的窗口大小

在尝试用C++创建窗口并绘制窗口大小与我设置的大小不匹配的矩形时,我注意到一些非常烦人的事情。例如,如果我设置480x240窗口并尝试通过获取GetWindowRect(hwnd,&rect)从上到下、从左到右绘制矩形并计算宽度和高度:rectangle_width=(rect.right-rect.left)/amountRectangleX;rectangle_height=(rect.bottom-rect.top)/amountRectangleY;如果amountRectangleX=2且Y=2,它会绘制4个矩形,但宽度和高度“关闭”,因此它不会填满整个屏幕或在其上呈现。发生

c++ - 为什么 CreateWindow() 函数需要 WindowClass 的名称成员而不是指向类本身的指针?

我正在阅读Luna的《使用DirectX11进行3D游戏编程的介绍》。我一直为Linux命令行编程,所以我决定从阅读附录A开始,这是一本win32编程入门书,但我不了解创建窗口()函数。它的第一个参数是您要创建的窗口类的名称-所以您首先必须声明一个窗口类,然后“注册”它(我假设这意味着将类添加到神秘的win32API中某处的某个类堆栈),然后将窗口类的lpszClassName成员传递给函数,如下所示:WNDCLASSwc;//setallthevariousmembersofwcwc.lpszClassName=L"BasicWndClass";RegisterClass(&wc);

c++ - Visual C++ 中的 CreateWindow() 始终返回 null

这是我的代码,在WinMain入口点我注册了一个类并尝试创建一个窗口,但是CreateWindow()函数总是返回NULL。但是RegisterClass()函数确实成功了。我做错了什么?#include#includeLRESULTCALLBACKevent(HWND,UINT,WPARAM,LPARAM){return0;}intCALLBACKWinMain(_In_HINSTANCEhInstance,_In_HINSTANCEhPrevInstance,_In_LPSTRlpCmdLine,_In_intnCmdShow){WNDCLASSwndClass;wndClass.

c++ - 正确的做法是 DialogBox 还是 CreateWindow

您好亲爱的有经验的用户,我在Windows中编程已经有一段时间了,我一直有这个问题创建用户界面时正确的做法是什么?是否在资源脚本中对UI进行操作并调用DialogBox。或者首先创建一个WNDCLASS结构声明字段,RegisterClass(&wc)并使用CreateWindow是更乏味的方法,最后它的相同功能只是使用DialogBox初始化更容易并且您对类失去了一点控制.我猜你会问这个应用程序的目的是什么,当然我可以说它是一个皮肤应用程序(然后我会使用CreateWindow),如果它是一个简单的计算器应用程序,我会选择Dialogbox。但是专业人士的目的是什么?并且请保持在wi

为什么不能通过GetProcAddress调用CreateWindow?

有时候,我看到有些人在折腾这样一个问题:“我想使用GetProcAddress来获取CreateWindow或者ExitWindows的调用地址,但是没有成功。为什么?”通常,他们当时是在尝试编写平台调用(P/Invoke)相关的代码,因为从底层的角度来看,平台调用是通过GetProcAddress来实现的。问题来了:为什么GetProcAddress不能用在这些函数上呢?原因是:它们(CreateWindow或ExitWindows)并非真正的导出函数,如果你查看对应的头文件,则会看到这样的宏定义。事实上,CreateWindow是一个双重宏定义,首先它会根据当前是否定义了UNICODE来展

c++ - 来自 CreateWindow/CreateDialog 的 HWND 是否可以从另一个线程获取消息?

使用Win32API,是否可以在一个线程中创建一个窗口或对话框,然后从另一个线程为它收集事件?HWND是否绑定(bind)到线程?尝试下面这个人为的例子,我从来没有看到GetMessage()触发。HWNDg_hWnd;DWORDWINAPImyThreadProc(LPVOIDlpParam){while(GetMessage(&msg,hWnd,0,0)>0){...}}intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,LPSTRlpCmdLine,intnShowCmd){hWnd=CreateDialog(hI