I have two CBitmapButtons. One is dragable by the mouse, the other is static on the screen. It is essentially a slider control made just from CbItmapButtons.
In, OnInitDialog() I call,
ButtonBase.Create(_T("btnb
ase"),WS_C
HILD|WS_VI
SIBLE|BS_P
USHBUTTON|
BS_OWNERDR
AW,CRect(v
arx,vary,2
0,20),this
, IDC_BBASE);
ButtonBase.LoadBitmapFF(St
ring here);
ButtonBase.SizeToContent()
;
Button1.Create(_T("btn1"),
WS_CHILD|W
S_VISIBLE|
BS_PUSHBUT
TON|BS_OWN
ERDRAW,CRe
ct(var1x,v
ar1y,59,62
),this, IDC_SETL);
Button1.LoadBitmapFF(Strin
g here);
Button2.Create(_T("btn2"),
WS_CHILD|W
S_VISIBLE|
BS_PUSHBUT
TON|BS_OWN
ERDRAW,CRe
ct(var2x,v
ar2y,59,62
),this, IDC_SETH);
Button2.LoadBitmapFF(Strin
g here);
This is basically what i have, Their is 30 of the base buttons(ButtonBase)
making a solid bar about 800 pixels long. Button1&2 are the position
indicators.
When i launch with this code the dialog comes up and the Position Button(Button2, aka "PB") is drawn under neath the Base Button(ButtonBase, aka "BB"). I've tried using every combination of SetWindowPos i can think of and also a few other functions like SetWindowPlacement. I tried changing the order of the Create() functions above and using SetWindowPos and others. Every time it comes out it either draws properly and you cant click it or it draws improperly and you can click it and then it looks fine. Right now with the above code i can call Button2.Invalidate() From a separate button press call of another button on the screen or i can call it X number of seconds from a separate thread that is sleeping upon start up. It then redraws the PB on top of the BB properly. But if i try calling Button2.Invalidate() in OnInitDialog(), the PB does not draw on top of BB. It will Stay behind it. Outside of making some kind of ungly work around i've run out of ideas. Any help is appreciated.
Just a side note. The resource ID being used in the above code it the ID of button created through the resource editor. The tab order is set properly on the buttons in the dialog. But by creating these dynamically, i'm pretty sure it overrides the tab order from the resource editor. And the buttons have their "Visible" State set to "false" as they are just plain CButtons and im using bitmap buttons.