标题:g_winnum获取不到窗口,报告间接级别不同
只看楼主
Black_Melody
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2019-5-31
 问题点数:0 回复次数:6 
g_winnum获取不到窗口,报告间接级别不同
按照老师的代码打进去的,当老师把鼠标放到 g_winnum(第四行)的时候会显示获取到了多少个窗口,但在我电脑上获取不到一个窗口,编译器生成顺序显示LPARAM与void*间接级别不同和EnumWindows
与实参2不符的报告,大佬们帮忙看下!我刚学

#include <windows.h>

#define WINMAXIMUM 100
HWND g_hwnds[WINMAXIMUM] = { 0 };
int g_winnum = 0;

BOOL CALLBACK EnumWindowsProc(
    _In_ HWND hwnd,
    _In_ LPARAM lParam)
{
    char classname[MAXBYTE] = { 0 };
    GetClassNameA(hwnd, classname, MAXBYTE);
    if (strcmp("TXGuiFoundation", classname) == 0)
    {
        g_hwnds[g_winnum] = hwnd;
        g_winnum++;
    }

    return TRUE;
}

int main()
{
    EnumWindows(EnumWindowsProc, NULL);
    //每行3个窗口分4列排列

    //让所有窗口依次从左向右飞过

    //让所有窗口依次挨个从左向右飞过

    //让窗口排列成
    //*
    //**
    //***
    //**
    //*

    //让窗口排列成
    //              *
    //               **
    //            ***
    //             **
    //              *

    //让窗口分3行,每次每行飞入一个

    //模拟窗口反弹
}
搜索更多相关主题的帖子: 获取 窗口 级别 不同 HWND 
2019-05-31 00:45
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
我电脑上获取不到一个窗口
那你的电脑上打开了类名为“TXGuiFoundation”的窗体吗?
你是在枚举完毕后,查看g_winnum变量值的吗?

编译器生成顺序显示LPARAM与void*间接级别不同和EnumWindows与实参2不符的报告
听不懂你在说什么,与其大堆废话还说不清楚,为什么不直接贴出编译器给出的错误信息?



2019-05-31 09:05
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
先打开QQ,然后执行下面的代码试试

程序代码:
#include <windows.h>
#include <stdio.h>

BOOL CALLBACK EnumWindowsProc( HWND hWnd, LPARAM lParam )
{
    wchar_t classname[260];
    if( GetClassNameW(hWnd,classname,_countof(classname)) )
    {
        if( wcscmp(classname,L"TXGuiFoundation") == 0 )
        {
            printf( "%p\n", hWnd );
        }
    }
    return true;
}

int main( void )
{
    EnumWindows( &EnumWindowsProc, NULL );
}

2019-05-31 09:09
Black_Melody
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2019-5-31
得分:0 
回复 2楼 rjsp
刚玩这个论坛,不知道怎么给编译器的错误信息,打开了腾讯的窗口
2019-05-31 18:59
Black_Melody
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2019-5-31
得分:0 
回复 3楼 rjsp
你给的代码也出错啦,和我那个代码的错误一样,
2019-05-31 19:07
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
刚玩这个论坛,不知道怎么给编译器的错误信息

选择好文字,然后拷贝粘贴。和论坛没屁关系。另外,能贴文字就别贴图。

第一个错误,将 true 改为 TRUE 应该就行了
另两个警告不知道,我暂时没vc
2019-05-31 22:16
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:507
帖 子:8890
专家分:53117
注 册:2011-1-18
得分:0 
程序代码:
#include <windows.h>
#include <stdio.h>

BOOL CALLBACK EnumWindowsProc( HWND hWnd, LPARAM lParam )
{
    wchar_t classname[260];
    if( GetClassNameW(hWnd,classname,_countof(classname)) )
    {
        if( wcscmp(classname,L"TXGuiFoundation") == 0 )
        {
            printf( "%p\n", hWnd );
        }
    }
    return TRUE;
}

int main( void )
{
    EnumWindows( &EnumWindowsProc, 0 );
}
2019-06-03 08:41



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-495016-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.184810 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved