🔒 Closed WM_KEYDOWN ng EditText sa DialogBox WinApi C++

Status
Not open for further replies.

ronmed57

Leecher
Pa help po Hindi ko mapagana ung WM_KEYDOWN ng edittext sa DialogBox sa WinApi C++. code::Blocks ver 16 ang gamit ko po. Gusto ko lang po ma try kung pano ito gagana sa DialogBox

Eto po ung code

#include <windows.h>
#include <commctrl.h>
#include <stdio.h>
#include "resource.h"

HINSTANCE hInst;
WNDPROC g_oldDlgdProc;

LRESULT CALLBACK DlgWindowsProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam);
void ChangeDialogClass(HWND hwnd);

BOOL CALLBACK DlgMain(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{

switch(uMsg)
{ //1

case WM_INITDIALOG:
{ //2

ChangeDialogClass( GetDlgItem(hwndDlg, IDED1));

} //2
return TRUE;

case WM_CLOSE:
{ //3


EndDialog(hwndDlg, 0);

} //3
return TRUE;

case WM_COMMAND:
{ //4


switch(LOWORD(wParam))
{ //5

case IDBU1:
{ //6


} //6

break;

case IDED1:
{ //7


} //7


} //5


} //4

return TRUE;

}//1

return FALSE;
}

int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
hInst=hInstance;
InitCommonControls();


DialogBox(hInst, MAKEINTRESOURCE(DLG_MAIN), NULL, (DLGPROC)DlgMain);


return 1;
}


LRESULT CALLBACK DlgWindowsProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{

char sOu[200];


if (message == WM_KEYDOWN)
{

int key = (int) wParam;


sprintf(sOu, "KEYDOWN %d", key );

MessageBox(hWnd, sOu, "MES", MB_OK);

}


return g_oldDlgdProc(hWnd, message, wParam, lParam);
}

void ChangeDialogClass(HWND hwnd)
{


g_oldDlgdProc = (WNDPROC)GetWindowLong(hwnd, GWL_ID);
SetWindowLong(hwnd, GWL_ID, (LONG)&DlgWindowsProc);

}




///////////////////////////////////////////////
//Sa resource.rc


// Generated by ResEdit 1.5.10
// Copyright (C) 2006-2012
// You do not have permission to view the full content of this post. Log in or register now.

#include <windows.h>
#include <commctrl.h>
#include <richedit.h>
#include "resource.h"




//
// Dialog resources
//
LANGUAGE 0, SUBLANG_NEUTRAL
DLG_MAIN DIALOG 0, 0, 400, 300
STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU
CAPTION "Dialog"
FONT 8, "Ms Shell Dlg"
{

EDITTEXT IDED1, 30, 50, 100, 20
EDITTEXT IDED2, 140, 50, 100, 20
PUSHBUTTON "PRESS", IDBU1, 30, 200, 100, 20

}



//
// Manifest resources
//
LANGUAGE 0, SUBLANG_NEUTRAL
1 RT_MANIFEST ".\\manifest.xml"



///////////////////////////////////////
//sa resource.h


#ifndef IDC_STATIC
#define IDC_STATIC (-1)
#endif

#define DLG_MAIN 100
#define IDBU1 111
#define IDED1 112
#define IDED2 113
 
namali po pala ako ng post ito po ung pag babago sa ChangeDialogClass


void ChangeDialogClass(HWND hwnd)
{

g_oldDlgdProc = (WNDPROC)GetWindowLong(hwnd, GWL_WNDPROC);
SetWindowLong(hwnd, GWL_WNDPROC, (LONG)&DlgWindowsProc);

}
 
Graduate na po ako ng 2 year programing. Libangan ko po sa bhay habang quaranteen. gusto ko lang po malaman kung pede sa dialogbox. Pag DialogBox lang at wlang Ibang Item gaya ng PUSHBUTTON at EDITTEXT ay gumagana ang WM_KEYDOWN ngunit nung linagay ko EDITTEXT at PUSHBUTTON ay ayaw na gumana ng WM_KEYDOWN.
 
ah okay kala ko gumagawa ka ng key-logger lol. pero seryoso hardcore yan visualc++ maiiintindihan mo talaga ang internals ng Windows kung ma master mo yan. puro copy paste ako jan ang hirap yan from scratch ubos sa oras, mahalaga naman jan magegets mo ung kina copypaste mo eh. para madali mo ma fix mga problems jan, try mo i trace sa debugger.
 
Ang hirap nga sir pag self study alang makuhanan ng information na maayos. Sa google ako nag research copy and paste lang po ginagawa ko at tsaka ko inoobservahan. kaso ala pa ko makuhang maayos na code. Mas maganda sana kung mag shashareran ng mga code kahit pa hapyaw na code lang. Hindi po ako gumamit ng Visual c++. huli ko pong gamit ko ng Visual Studio ay Vb6. Mas kursunada ko ung c++ kasi mas malawak ang code niya. Mahirap ngalang aralin. Code::Blocks po gamit ko, Mas portable po kasi ung code::blocks, kahit copy ko lang ung folder ng program ay gumagana sya. Kahit may mga code ng c++ na ayaw gumana sa Code::Blocks gaya ng to_string().

Sir May iba pa po ba kayong alam na forum o Group para sa mga programmer ng c++. Gusto ko po sana itanung ung mga problem ko sa code.
 
Status
Not open for further replies.

About this Thread

  • 5
    Replies
  • 483
    Views
  • 2
    Participants
Last reply from:
ronmed57

Online now

Members online
313
Guests online
698
Total visitors
1,011

Forum statistics

Threads
2,276,038
Posts
28,967,217
Members
1,232,071
Latest member
gregpumapatayngtnga
Back
Top