Olá, estou criando um programa que utiliza a Windows API e estou com um problema:
Tenho uma Clase CFrame, que deriva da classe Control, ao inicializar, a classe CFrame guarda o HWND nela mesma e aciona um método global, chamado "AddWindow", que está no arquivo WindowManager.cpp, esse método armazena o HWND e o objeto CFrame, depois, quando o WndProc é acionado, o WindowManager.cpp procura um CFrame que corresponda ao HWND solicitado (Control *GetFrameByHandle(HWND hwnd)) numa classe chamada Hashtable, na primeira janela criada, funciona perfeitamente, mas se eu quiser criar outra janela, a janela é criada, mas durante o WndProc, o CFrame correspondente ao HWND não é encontrado, consequentemente, isso acontece:
A janela da direita foi criada primeiro, durante o método WinMain, a da esquerda foi criada em outro método.
Question
Igor Lira
Olá, estou criando um programa que utiliza a Windows API e estou com um problema:
Tenho uma Clase CFrame, que deriva da classe Control, ao inicializar, a classe CFrame guarda o HWND nela mesma e aciona um método global, chamado "AddWindow", que está no arquivo WindowManager.cpp, esse método armazena o HWND e o objeto CFrame, depois, quando o WndProc é acionado, o WindowManager.cpp procura um CFrame que corresponda ao HWND solicitado (Control *GetFrameByHandle(HWND hwnd)) numa classe chamada Hashtable, na primeira janela criada, funciona perfeitamente, mas se eu quiser criar outra janela, a janela é criada, mas durante o WndProc, o CFrame correspondente ao HWND não é encontrado, consequentemente, isso acontece:
A janela da direita foi criada primeiro, durante o método WinMain, a da esquerda foi criada em outro método.
WndProc:
AddWindow: GetFrameByHandle:Uma observação é que os valores do HWND do CFrame mudam espontaneamente, por um motivo que desconheço:
Notem que o [0] é a única janela que funciona corretamente.
Link to comment
Share on other sites
0 answers to this question
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.