{"id":689,"date":"2010-11-26T22:22:17","date_gmt":"2010-11-26T21:22:17","guid":{"rendered":"http:\/\/blog.m-ri.de\/?p=689"},"modified":"2011-01-07T09:28:02","modified_gmt":"2011-01-07T08:28:02","slug":"combobox-dropdown-hoehe-wird-nicht-mehr-durch-die-ressourcen-definiert","status":"publish","type":"post","link":"http:\/\/blog.m-ri.de\/index.php\/2010\/11\/26\/combobox-dropdown-hoehe-wird-nicht-mehr-durch-die-ressourcen-definiert\/","title":{"rendered":"ComboBox DropDown H\u00f6he wird nicht mehr durch die Ressourcen definiert"},"content":{"rendered":"<p>Vor Jahren habe ich f\u00fcr die microsoft.public.de.vc FAQ den folgenden Beitrag geschrieben:<br \/>\n<a href=\"#Q16\">Warum klappt meine ComboBox im DropDown-Stil in einem Dialog nicht auf?<\/a><\/p>\n<p style=\"padding-left: 30px;\">Beim Erstellen einer ComboBox in einem Dialog Template muss auch die Gr\u00f6\u00dfe mit angegeben werden, die die ComboBox haben soll, wenn Sie denn aufgeklappt wird. Dies kann auf zwei Methoden geschehen.<\/p>\n<p style=\"padding-left: 30px;\">Methode 1: ComboBox aus der Werkzeugleiste einfach durch einen Mausklick einsetzen. Anschlie\u00dfend auf den &#8222;DropDown&#8220;-Schalter klicken und nun die gew\u00fcnschte Gr\u00f6\u00dfe einstellen.<\/p>\n<p style=\"padding-left: 30px;\">Methode 2: ComboBox durch Ziehen eines Rechteckes auf dem Dialog einsetzen. In diesem Fall wird die Gr\u00f6\u00dfe gleich korrekt bestimmt. Nachtr\u00e4gliche \u00c4nderung der Gr\u00f6\u00dfe erfolgt dann wieder durch anklicken des &#8222;DropDown&#8220;-Schalters.<\/p>\n<p style=\"padding-left: 30px;\">Anmerkung: Die Gr\u00f6\u00dfe einer ComboBox mit dem Stil CBS_DROPDOWN und CBS_DROPDOWNLIST im NICHT aufgeklappten Zustand kann beim Erzeugen nicht ver\u00e4ndert werden. Diese Gr\u00f6\u00dfe bestimmt Windows automatisch. Die Gr\u00f6\u00dfe die bei CreateWindow\/CreateWindowEx angegeben wird ist immer die Gr\u00f6\u00dfe des Control im aufgeklappten Zustand. Nachdem ein g\u00fcltiger Windowshandle auf die ComboBox existiert kann mit CComboBox::SetItemHeight die H\u00f6he der Items bzw. des Editfelds der ComboBox ver\u00e4ndert werden.<\/p>\n<p>Jetzt habe ich entdeckt, dass dieser Beitrag eigentlich \u00fcberfl\u00fcssig geworden ist, seit dem es <em>COMCTL32<\/em> in der Version 6.0 gibt.<br \/>\nWenn ein Manifest f\u00fcr die 6.0 Version der Common Controls vorhanden ist, dann bestimmt die <em>COMCTL32<\/em> DLL\u00a0automatisch selbst anhand der H\u00f6he des Monitors und der Position der ComboBox wie gro\u00df der DropDown-Bereich sein kann.<\/p>\n<p>Aufgefallen ist mir das, als ich in einer RC-Datei sah, dass eine ComboBox mit der H\u00f6he\u00a0gerade einmal 20\u00a0DLUs angegeben wurde. Da in der RC Datei normalerweise immer nur die DropDown-H\u00f6he eingetragen ist, fragte ich mich warum bisher niemandem aufgefallen war, dass diese ComboBox, nicht aufklappt. Ein kurzer Test, zeigte allerdings, dass alles normal war und die Box, den halben Monitor in der H\u00f6he einnahm.<br \/>\nEin weiter\u00a0Test mit und ohne Manifest zeigte mir dann schnell, dass sich das Standardverhalten von Comboboxen offensichtlich ver\u00e4ndert hat.<\/p>\n<p><strong>Nachtrag (07.01.2011):<br \/>\n<\/strong>Nur die neuen Common Controls ab Vista und <em>Windows 7<\/em> verhalten sich wie oben beschrieben. <em>Windows XP\u00a0<\/em>(einschlie\u00dflich <em>SP3<\/em>) verh\u00e4lt sich noch gem\u00e4\u00df der MSDN WinAPI Doku. D.h. die H\u00f6he wird nicht automatisch angepasst. Man kann sich eben auf nichts verlassen.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Vor Jahren habe ich f\u00fcr die microsoft.public.de.vc FAQ den folgenden Beitrag geschrieben: Warum klappt meine ComboBox im DropDown-Stil in einem Dialog nicht auf? Beim Erstellen einer ComboBox in einem Dialog Template muss auch die Gr\u00f6\u00dfe mit angegeben werden, die die ComboBox haben soll, wenn Sie denn aufgeklappt wird. Dies kann auf zwei Methoden geschehen. Methode &hellip; <a href=\"http:\/\/blog.m-ri.de\/index.php\/2010\/11\/26\/combobox-dropdown-hoehe-wird-nicht-mehr-durch-die-ressourcen-definiert\/\" class=\"more-link\"><span class=\"screen-reader-text\">\u201eComboBox DropDown H\u00f6he wird nicht mehr durch die Ressourcen definiert\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":[24,3,2],"tags":[370,256,69,97,59,61],"class_list":["post-689","post","type-post","status-publish","format-standard","hentry","category-community","category-programmieren","category-windows-api","tag-c","tag-comctl32","tag-manifest","tag-ui","tag-win32","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\/689","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=689"}],"version-history":[{"count":1,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/689\/revisions"}],"predecessor-version":[{"id":730,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/posts\/689\/revisions\/730"}],"wp:attachment":[{"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/media?parent=689"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/categories?post=689"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/blog.m-ri.de\/index.php\/wp-json\/wp\/v2\/tags?post=689"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}