标签: win32gui

Win32:如何创建一个无边框弹出窗口

Win32 API为窗口创建提供了许多样式,我正在寻找一种样式,可以从我使用此代码创建的窗口中删除一个像素的边框:

DWORD dwExtStyle = 0;
DWORD dwStyle = WS_POPUPWINDOW;

    m_hWnd = CreateWindowEx(
    dwExtStyle,
    className,
    windowName,
    dwStyle,
    300,
    300,
    100,
    100,
    NULL,
    NULL,
    hInstance,
    NULL);

ShowWindow(m_hWnd, SW_SHOW);
Run Code Online (Sandbox Code Playgroud)

我得到了结果:

在此输入图像描述

标志的组合可以从窗口中删除黑色边框.

c++ user-interface winapi win32gui

2
推荐指数
1
解决办法
7198
查看次数

win32 - 检测子窗口的所有父窗口

就像EnumChildWindowsAPI一样,想知道是否可能相反......即,如果有一种技术或API来枚举子窗口的所有父窗口,并最终到达主应用程序窗口.

我的问题是我有多个不同的应用程序具有相同的子窗口(可通过窗口类和标题识别).我想一次检测哪个特定于应用程序的子窗口处于活动状态,或者两者是否处于活动状态是否可以与任何一个一起使用?

例如,我有两个运行的应用程序,名为"XYZ"和"ABC",两个都有一个具有相同注册的子窗口/对话框.类和标题说 - "配置".现在我想从"XYZ"应用程序中获取"配置"对话框的窗口详细信息?

希望我能够正确地呈现问题详情.

谢谢,

winapi win32gui

2
推荐指数
1
解决办法
569
查看次数

EndDialog vs DestroyWindow

我正在创建Windows上下文菜单的模仿.

显示对话框执行以下操作:

  1. 使用创建对话框 CreateDialogIndirectParam
  2. 运行消息循环:

    while ( ContinueModal() && GetMessage(&msg, NULL, 0, 0) )
    {
        TranslateMessage( &msg );
        DispatchMessage( &msg );
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 我在新窗口中寻找丢失焦点事件的对话框,我将ContinueModel标志设置为false并调用EndDialog/ DestroyWindow.

    • 调用EndDialog不会杀死我的对话框DestroyWindow.这没关系,任何人都可以解释原因吗?

谢谢!D.

c++ windows winapi win32gui windows-messages

2
推荐指数
1
解决办法
4038
查看次数

List-View控件忽略扩展样式

我用该CreateWindowEx()函数创建了一个列表视图控件.我在创建期间指定的扩展样式不适用于列表视图控件.

这是我的代码:

INITCOMMONCONTROLSEX iccx;
iccx.dwSize = sizeof(INITCOMMONCONTROLSEX);
iccx.dwICC  = ICC_LISTVIEW_CLASSES;
InitCommonControlsEx(&iccx);

hWnd = CreateWindowExW( LVS_EX_FULLROWSELECT | LVS_EX_GRIDLINES,    // Extended Styles
                        WC_LISTVIEWW,                               // Class Name
                        L"",                                        // Title
                        LVS_REPORT | WS_VISIBLE | WS_CHILD,         // Styles
                         10,    // x
                        320,    // y
                        480,    // w
                        200,    // h
                        hWndParent,
                        NULL,
                        hInstance,
                        NULL);
Run Code Online (Sandbox Code Playgroud)

向其添加一些内容后,列表视图的外观如下图所示.

我的列表视图的外观

如您所见,我既不能选择完整行,也不会显示网格线.

我错过了什么?如何使扩展样式显示效果?

c++ winapi listview styles win32gui

2
推荐指数
1
解决办法
1759
查看次数

C++中的Win32以中文显示...我做错了什么?

我是win32和C++的新手,我刚刚开始学习在线教程并编写了这段代码:

#include <windows.h>

int WINAPI WinMain(HINSTANCE hThisInstance, HINSTANCE hPrevInstance,
                   LPSTR lpCmdLine, int nCmdShow)
{
MessageBox(NULL, (LPCWSTR) "Yes, I remember Adlestrop", (LPCWSTR) "A minimal windows program", MB_OK);
return 0;
}
Run Code Online (Sandbox Code Playgroud)

但是当编译并运行代码时,在消息框中文本是中文...我知道如果我不提及正确的类型,输出可能是二进制或ASCCI或十六进制....但第一次它原来是中国人..谁能告诉我我做错了什么??

c c++ winapi win32gui

2
推荐指数
1
解决办法
1311
查看次数

如何在Windows中获取窗口的默认标题栏高度?

我正在开发一个使用自绘标题栏的应用程序,它需要模仿系统默认标题栏.

那么如何才能获得Windows中超载窗口的默认标题栏高度?

windows winapi win32gui

2
推荐指数
2
解决办法
3333
查看次数

Win32(C++): - 如何使列表项可折叠

我有一个列表框,其中有多个列表项.我希望实现类似于单击列表项的内容,它将折叠并显示所单击项的摘要:

在此输入图像描述

我已经在网上搜索了很长一段时间,但没有得到任何好的解决方案.我是Win32的新手.有关如何处理此问题的任何建议,我应该使用哪种控件.任何帮助将不胜感激.

c++ winapi listitem collapsable win32gui

2
推荐指数
1
解决办法
287
查看次数

无法在Windows 10下关闭OSK.exe

我使用下面的代码打开osk.exe

HINSTANCE Dlg::ExecuteOSK()
{
    typedef BOOL (WINAPI * LPFN_IsWow64Process)(HANDLE, PBOOL);
    typedef BOOL (WINAPI * LPFN_Wow64DisableWow64FsRedirection)(PVOID *);
    typedef BOOL (WINAPI * LPFN_Wow64RevertWow64FsRedirection)(PVOID);
    LPFN_IsWow64Process fnIsWow64Process = NULL;
    LPFN_Wow64DisableWow64FsRedirection fnWow64DisableWow64FsRedirection = NULL;
    LPFN_Wow64RevertWow64FsRedirection fnWow64RevertWow64FsRedirection = NULL;
    fnIsWow64Process = (LPFN_IsWow64Process) GetProcAddress(GetModuleHandle(TEXT("kernel32")), "IsWow64Process");
    fnWow64DisableWow64FsRedirection = (LPFN_Wow64DisableWow64FsRedirection) GetProcAddress(GetModuleHandle(TEXT("kernel32")), "Wow64DisableWow64FsRedirection");
    fnWow64RevertWow64FsRedirection = (LPFN_Wow64RevertWow64FsRedirection) GetProcAddress(GetModuleHandle(TEXT("kernel32")), "Wow64RevertWow64FsRedirection");
    BOOL bIsWow64 = FALSE;
    PVOID OldValue = NULL;
    HINSTANCE handle;
    if (NULL == fnIsWow64Process || NULL == fnWow64DisableWow64FsRedirection || NULL == fnWow64RevertWow64FsRedirection)
    {
        handle = ::ShellExecute(NULL, "open", "OSK", NULL, NULL, SW_SHOW);
    } …
Run Code Online (Sandbox Code Playgroud)

c++ winapi mfc win32gui

2
推荐指数
1
解决办法
604
查看次数

Python获取特定窗口标题

我希望能够检测是否存在专门命名的窗口(在任何进程中)以用作“if”变量

经过一番研究,我得出的结论是我必须使用该win32gui库(有些帖子也建议ctypes),但我发现的大多数帖子都是关于制作流程列表的,唯一与该主题相关的帖子没有回答正确提问。也许我太新手无法理解它,但最后我无法让它工作(问题是这个

为了举例说明我想要的,我将分享一个简单的.vbs代码来实现这一点:它搜索特定的名称(在我们的例子中是 steve jobs),如果它在任何地方找到它,它就会触发(在这个示例中,它会关闭所述进程)

do
WindowTitle = "steve jobs"
set shell = createObject("wscript.shell") 
success = shell.appactivate(WindowTitle)
if success then shell.sendkeys "%{F4}" 
loop
Run Code Online (Sandbox Code Playgroud)

python win32gui

2
推荐指数
1
解决办法
2万
查看次数

如何在Python中更改光标图像

我想在程序运行时更改光标图像(屏幕上的任何位置)。

我尝试使用 win32gui 加载图像,然后使用 win32api 更改光标图像,但是出了问题,我的光标没有显示 我的光标图像是 map.cur

import win32api
import time
import win32gui
import win32con

x = win32gui.LoadImage(0,'map.cur',win32con.IMAGE_CURSOR,0,0,win32con.LR_LOADFROMFILE)
win32api.SetCursor(x)

time.sleep(5)
Run Code Online (Sandbox Code Playgroud)

python winapi win32gui win32con

2
推荐指数
1
解决办法
8389
查看次数