berkov Temat założony przez niniejszego użytkownika |
[WinAPI] WM_NOTIFY dla kontrolki Edit » 2013-05-03 14:13:04 hey ho! Jak zwykle bede wdzieczny za kazda pomoc bo troche utknalem na wydawac by sie moglo prostym temacie. Czy istnieje podobny kod powiadamiania (notification code) do WM_NOTIFY ale taki ktory jest wysylane dla kontrolki Edit? Wyglada na to ze WM_NOTIFY dziala np z ListView ale nie jest wysylane dla EditControl (EDITTEXT) Program ma zrobic nastepujace kroki: 1. Sprawdz czy komunikat pochodzi z danego identyfikatora (identifier) EditControl (tutaj: IDC_inv_comment) 2. Czy zostal on dwa razy klikniety 3. jezeli (1 && 2 == true) wtedy zawolal funkcje "writetextfromdb" przekazuja jej w paranmetrach miedzy innymi int tego identyfikatora. Oto kod ktory stworzylem dla innej kontrolki - mianowicie dla ListView. Chodzi dokladnie o to samo tylko zeby chwytal kontrolke edit. Kod: case WM_NOTIFY: switch((( LPNMHDR ) lParam )->code ) { case NM_DBLCLK: if(((( LPNMHDR ) lParam )->idFrom ) == IDC_inv_comment ) { writetextfromdb( hwnd, IDC_inv_comment, "t_invoices", "inv_dok_code" ); } } break; break;
dzieki berkov |
|
berkov Temat założony przez niniejszego użytkownika |
» 2013-05-03 14:47:02 Probowalem tez tego: case WM_COMMAND: { switch( LOWORD( wParam ) ) { case IDC_inv_comment: if( HIWORD( wParam ) == WM_LBUTTONDBLCLK ) writetextfromdb( hwnd, IDC_inv_comment, "t_invoices", "inv_dok_code" ); } } break; Ale tez nie dziala. Dodam tylko ze: Okno z ktorego pochodza notifications to dialog: hdFVT = CreateDialog( GetModuleHandle( 0 ), MAKEINTRESOURCE( 1000 ), hwMain, WndProc_dFVT ); w resources.rc: LANGUAGE 0, SUBLANG_NEUTRAL IDD_FVT DIALOGEX 0, 0, 319, 220 STYLE DS_3DLOOK | DS_CENTER | DS_MODALFRAME | DS_SHELLFONT | WS_CAPTION | WS_VISIBLE | WS_POPUP | WS_SYSMENU CAPTION "Wprowadź dokument" FONT 8, "Verdana" { EDITTEXT IDC_inv_comment, 28, 113, 266, 25, ES_AUTOHSCROLL | WS_TABSTOP } probowalem nawet dodac w resources.rc styl CS_DBLCLKS ale tez nie zadzialalo. chyba trzeba bedzie zrobic superklase... |
|
xevuel |
» 2013-05-04 09:47:12 Fajnie by było jakbyś używał polskich znaków, korzystał ze znaczników [cpp] i jakoś normalniej formatował kod. Bez tego pomoc jest naprawdę utrudniona.. Gdy użytkownik dwa razy naciśnie klawisz myszy, wysyłane jest WM_LBUTTONDBLCLK. Ale nie do procedury rodzica kontrolki, tylko do swojej własnej, odpowiadającej m.in. za narysowanie kontrolki i innych standardowych czynności. Jak "podsłuchać" takie wiadomości? Użyj subclassingu. |
|
berkov Temat założony przez niniejszego użytkownika |
» 2013-05-04 11:59:28 @xevuel, dzieki ale problem w tym ze jestem czechem i przyznaje ze mam troche problemy z polska diakrytyka wiec mam nadzieje ze jakos dacie rade. Pozatym jestes jednym z nielicznych ktory pisze z diakrytyka na necie, to taka specyficnza "kultura" ktora wywodzi sie z tego ze ludzie bez diakrytyki pisza szybciej, zwlaszcza w jezyku polskim. W jezyku czeskim mamy latwiej bo by wywolac diakrytke uzywamy w standardowej klawiaturze specyficznych klawisz (cyfry) zamiast kombinacji jak wy w polsce.
co do znacznikow cpp to przyznaje ze nie wiem jak sie je robi, ale zaraz doczytam i zastosuje sie.
a teraz spowrotem do tematu. jak napisalem wczeniej wiem ze moge uzyc subclassingu ale pytanie czy istnieje inny sposob.
ps. co znaczy "fajniej formatowac kod"? |
|
xevuel |
» 2013-05-04 12:13:24 Pozatym jestes jednym z nielicznych ktory pisze z diakrytyka na necie, to taka specyficnza "kultura" ktora wywodzi sie z tego ze ludzie bez diakrytyki pisza szybciej, zwlaszcza w jezyku polskim. |
Poczytaj to forum, ludzi którzy mają > 500 postów (i w sumie nie tylko, ale pomińmy już tych którzy przychodzą tylko po rozwiązanie zadania domowego). http://www.wykop.pl/link/1420419 /jak-brzmialyby-piosenki-gdyby-nie-uzywano-polskich-znakow/. Polskich znaków można nie używać, gdy klient ma problemy z ich wyświetleniem, czy np. na chatach. W przypadku przeglądarek takiego problemu nie ma. co do znacnzikow cpp to przyznaje ze nie wiem jak sie je robi, ale zaraz doczytam i zastosuje sie. | Kurs STCps. co znaczy "fajniej formatowac kod"? |
Nie pisać w ten sposób: int main() { std::cout << "foo" << std::endl; if() { something; } switch(...) { switch(...) { break; } break; } }
, bo mniej więcej w ten sposób sformatowałeś kod w pierwszym poście. a teraz spowrotem do tematu. jak napisalem wczeniej wiem ze moge uzyc subclassingu ale pytanie czy istnieje inny sposob. |
Skoro ludzie na internetach mówią żeby użyć subclassingu, to zapewne nie. Ale jeśli nie wierzysz, możesz sobie sprawdzić: [MSDN] Edit Control |
|
berkov Temat założony przez niniejszego użytkownika |
» 2013-05-04 13:04:54 wiec zachecam do dalszego uzywania diakrytyki. ja jej uzywac nie bede Wiesz o tym ze wystarczylo napisac "bez subclassingu nie dostaniesz notyfication o podwojnym kliknieciu z editboxu, pozdrawiam"? i jeszcze raz sorry ze zmarnowalem tyle twojego czasu. |
|
« 1 » |