{"id":341,"date":"2008-10-15T20:40:03","date_gmt":"2008-10-15T18:40:03","guid":{"rendered":"http:\/\/blog.m-ri.de\/?p=341"},"modified":"2008-10-11T20:57:02","modified_gmt":"2008-10-11T18:57:02","slug":"der-handler-cwndongetdlgcode-hat-eine-falsche-signatur","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2008\/10\/15\/der-handler-cwndongetdlgcode-hat-eine-falsche-signatur\/","title":{"rendered":"Der Handler CWnd::OnGetDlgCode hat eine falsche Signatur"},"content":{"rendered":"<p>Ich habe mich in der letzten Zeit viel mit den Standard-Fensterklassen besch\u00e4ftigen m\u00fcssen. Insbesondere war hier auch das Zusammenspiel der Control in Dialogen in meinem Fokus.<br \/>\nIn meinem Artikel <a title=\"Permanent Link: Die Return-Taste in Dialogen, eine unendliche Geschichte\" rel=\"bookmark\" href=\"http:\/\/blog.m-ri.de\/index.php\/2008\/09\/21\/die-return-taste-in-dialogen-eine-unendliche-geschichte\/\">Die Return-Taste in Dialogen, eine unendliche Geschichte<\/a> habe ich ja bereits einiges dazu geschrieben.<\/p>\n<p>Wer Aufmerksam nun die Windows API zu <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/ms645425(VS.85).aspx\">WM_GETDLGCODE<\/a>\u00a0liest und diese mit <a href=\"http:\/\/msdn.microsoft.com\/en-us\/library\/t83978eh(VS.80).aspx\">CWnd::OnGetDlgCode<\/a>\u00a0vergleicht, dem wird sofort auffallen, dass die Signatur nicht mit der Windows API Beschreibung \u00fcbereinstimmt.<\/p>\n<p>Ich habe aufgrund dieser Signatur in der MFC immer gedacht, dass alle Controls immer eine Konstante zur\u00fcckgeben. Das die Controls individuell f\u00fcr jede Taste entscheiden k\u00f6nnen ob sie die haben wollen oder nicht ist mir dabei glatt entgangen. Will man es also richtig machen, dann muss man auf <em>AfxGetCurrentMessage<\/em> zur\u00fcckgreifen um die entsprechenden\u00a0<em>wParam<\/em> und\u00a0<em>lParam<\/em> Werte zu erhalten.<\/p>\n<pre lang=\"cpp\">UINT CMyWnd::OnGetDlgCode()\r\n{\r\n    MSG* pMsg = AfxGetCurrentMessage();\r\n    \/\/ virtual keycode\r\n    UINT uiVirtKey = pMsg-&gt;wParam;\r\n    \/\/ get keyboard message causing WM_GETDLGCODE\r\n    MSG *pKeyboardMsg = reinterpret_cast&lt;MSG*&gt;(pMsg-&gt;lParam);\r\n...\r\n    return uiNewDlgCode;\r\n}<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Ich habe mich in der letzten Zeit viel mit den Standard-Fensterklassen besch\u00e4ftigen m\u00fcssen. Insbesondere war hier auch das Zusammenspiel der Control in Dialogen in meinem Fokus. In meinem Artikel Die Return-Taste in Dialogen, eine unendliche Geschichte habe ich ja bereits einiges dazu geschrieben. Wer Aufmerksam nun die Windows API zu WM_GETDLGCODE\u00a0liest und diese mit CWnd::OnGetDlgCode\u00a0vergleicht, &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2008\/10\/15\/der-handler-cwndongetdlgcode-hat-eine-falsche-signatur\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eDer Handler CWnd::OnGetDlgCode hat eine falsche Signatur\u201c <\/span>weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[30,4,3,2],"tags":[370,352,61],"class_list":["post-341","post","type-post","status-publish","format-standard","hentry","category-c","category-mfc","category-programmieren","category-windows-api","tag-c","tag-mfc","tag-winapi"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/341","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/comments?post=341"}],"version-history":[{"count":1,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/341\/revisions"}],"predecessor-version":[{"id":347,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/341\/revisions\/347"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=341"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=341"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=341"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}