Mal ein paar kleine Fragen
-
Bin grad dabei mein erstes "richtiges" Windows - Programm zu schreiben und habe ein paar kleinere Fragen:
-
wie kann ich im menü einen Eintrag weiter nach rechts schieben? dachte noch einen leeren eintrag dazwischenzustellen, jedoch kann man diesen dann markieren, was natürlich nicht schön aussieht
-
ich habe einen info-dialog. wie kann ich den dialog beim start auf dem bildschirm zentrieren?
-
wenn ich den Info-Dialog verschiebe, wird der hintergrund nicht neu gezeichnet, welche nachricht muss ich dafür abfangen?
mfg
-
-
1.) zum beispiel leerzeichen in deine beschriftung einfügen bsp:" File "
ein altes beispiel, vielleicht auch nicht ganz optimal
void CenterWindow(HWND hwndChild, HWND hwndParent) { RECT rcChild; RECT rcParent; int wChild; int hChild; int wParent; int hParent; int wScreen; int hScreen; int xNew; int yNew; HDC hdc; GetWindowRect(hwndChild, &rcChild); wChild = rcChild.right - rcChild.left; hChild = rcChild.bottom - rcChild.top; GetWindowRect(hwndParent, &rcParent); wParent = rcParent.right - rcParent.left; hParent = rcParent.bottom - rcParent.top; hdc = GetDC(hwndChild); wScreen = GetDeviceCaps(hdc, HORZRES); hScreen = GetDeviceCaps(hdc, VERTRES); ReleaseDC(hwndChild, hdc); xNew = rcParent.left + ((wParent - wChild) /2); if(xNew < 0) xNew = 0; else if((xNew + wChild) > wScreen) xNew = wScreen - wChild; yNew = rcParent.top + ((hParent - hChild) /2); if(yNew < 0) yNew = 0; else if((yNew + hChild) > hScreen) yNew = hScreen - hChild; SetWindowPos( hwndChild, NULL, xNew, yNew, 0, 0, SWP_NOSIZE | SWP_NOZORDER); }
3.) WS_CLIPCHILDREN oder WS_CLIPSIBLINGS (weis es nicht mehr genau ) sollte beim erstellen des fensters mit angegeben sein.
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winui/winui/WindowsUserInterface/Windowing/windows/WindowReference/WindowStyles.asp