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.
Pergunta
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 para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.