Jump to content
  • Advertisement
Sign in to follow this  
MarkS

Weird static control/dialog box issue...

This topic is 3089 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

I am having some trouble with static text in dialog boxes under Windows. If I use CreateDialog with a pointer to a dialog proc or if I use DialogBox I get this: (Wrong) However, if I use CreateDialog with NULL in place of the dialog proc, I get this: (Correct) I'm going to need a dialog proc. Why is this happening and how do I stop it? There should not be a white box behind the text. I've scoured MSDN, but there is no mention of this. There is precious little information available on the static text control period. Any ideas?

Share this post


Link to post
Share on other sites
Advertisement
Are you drawing the labels "Deadhead Miles ..." etc. using the function TextOut?
If so, I have had this problem, you need to set the background as transparent.
use SetBkMode(hdc, TRANSPARENT);

If those labels are static controls like CreateWindowEx(0,"Static","Deadhead Miles",...); then I am not sure but there maybe a Flag you can use like SS_TRANSPARENT or something to make the background transparent, but I never get a white background when I use static controls.
Check the flags you have for the static control, something like the below would intentionally create the error you are getting...

CreateWindowEx(0,"Static","DeadheadMiles",WS_BORDER|WS_CHILD|WS_VISIBLE|SS_WHITERECT,x,y,100,20,...);

Share this post


Link to post
Share on other sites
How do you create the text? Are you creating windows (static controls)? If so then there shouldn't be a difference, regardless of the fact if its a modeless or modal dialog.

Share this post


Link to post
Share on other sites
What Endurion said ... make sure you aren't calling DefWindowProc from your dialog procedure or something like that. Otherwise, we need to see code.

Share this post


Link to post
Share on other sites
I'm using a dialog template created with a resource editor.


DRIVER_DLOG DIALOG 0, 0, 370, 150
STYLE DS_SETFONT | WS_BORDER | WS_POPUP | WS_VISIBLE | WS_SYSMENU | WS_CAPTION
CAPTION "Edit Driver Information..."
FONT 10, "MS SHELL DLG"
BEGIN
CONTROL "OK",IDOK,"BUTTON",BS_DEFPUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,100,125,50,14
CONTROL "Cancel",IDCANCEL,"BUTTON",BS_PUSHBUTTON |BS_VCENTER |BS_CENTER |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,220,125,50,14
CONTROL "Single",3,"BUTTON",BS_RADIOBUTTON |BS_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,220,80,50,14
CONTROL "Married",4,"BUTTON",BS_RADIOBUTTON |BS_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE ,275,80,60,14
CONTROL "",5,"EDIT",ES_AUTOHSCROLL |ES_LEFT |WS_CHILD |WS_TABSTOP |WS_VISIBLE | WS_BORDER,60,8,200,13
CONTROL "0.00",6,"EDIT",ES_AUTOHSCROLL |ES_RIGHT |WS_CHILD |WS_TABSTOP |WS_VISIBLE | WS_BORDER,110,48,40,13
CONTROL "0.00",7,"EDIT",ES_AUTOHSCROLL |ES_RIGHT |WS_CHILD |WS_TABSTOP |WS_VISIBLE | WS_BORDER,110,63,40,13
CONTROL "0.00",8,"EDIT",ES_AUTOHSCROLL |ES_RIGHT |WS_CHILD |WS_TABSTOP |WS_VISIBLE | WS_BORDER,110,78,40,13
CONTROL "0.00",9,"EDIT",ES_AUTOHSCROLL |ES_RIGHT |WS_CHILD |WS_TABSTOP |WS_VISIBLE | WS_BORDER,110,93,40,13
CONTROL "Driver Name:",10,"STATIC",SS_SIMPLE | SS_LEFT |WS_CHILD |WS_GROUP | WS_VISIBLE,10,10,44,10
CONTROL "0",11,"EDIT",ES_NUMBER |ES_AUTOHSCROLL |ES_RIGHT |WS_CHILD |WS_TABSTOP |WS_VISIBLE | WS_BORDER,310,48,40,13
CONTROL "0.00",12,"EDIT",ES_AUTOHSCROLL |ES_RIGHT |WS_CHILD |WS_TABSTOP |WS_VISIBLE | WS_BORDER,310,63,40,13
CONTROL "Deadhead Miles Pay Rate:",13,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,20,50,85,10
CONTROL "Live Miles Pay Rate:",14,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,20,65,85,10
CONTROL "Cushion Miles Pay Rate:",15,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,20,80,85,10
CONTROL "Hourly Pay Rate:",16,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,20,95,85,10
CONTROL "Allowances (Line 5 on W-4):",17,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,180,50,107,10
CONTROL "Additional Withholding (Line 6 on W-4):",12,"STATIC",SS_LEFT |WS_CHILD |WS_GROUP |WS_VISIBLE ,180,65,125,10
CONTROL "Pay Rate",18,"BUTTON",BS_GROUPBOX |WS_CHILD |WS_VISIBLE ,10,35,150,80
CONTROL "W-4 Information",19,"BUTTON",BS_GROUPBOX |WS_CHILD |WS_VISIBLE ,170,35,190,65
END



And the dialog proc. VERY basic right now...

bool CALLBACK DriverDialogProc(HWND hwndDlg,UINT message,WPARAM wParam,LPARAM lParam)
{
switch(message)
{
case WM_INITDIALOG:
CheckDlgButton(hwndDlg,3,true);
return(true);
case WM_ERASEBKGND:
return(false);
case WM_COMMAND:
switch(LOWORD(wParam))
{
case IDOK:
case IDCANCEL:
EndDialog(hwndDlg,wParam);
return(true);
}
break;
}
return(false);
}

Share this post


Link to post
Share on other sites
When interacting with Win32 you should use TRUE and FALSE rather than true and false. I doubt that's your problem, however.

Share this post


Link to post
Share on other sites
Quote:
Original post by jwezorek
When interacting with Win32 you should use TRUE and FALSE rather than than true and false. I doubt that's your problem, however.


Nope. No effect. I am curious why though? Besides, I like the pretty blue letters!

Share this post


Link to post
Share on other sites
Quote:
Original post by maspeir
Quote:
Original post by jwezorek
When interacting with Win32 you should use TRUE and FALSE rather than than true and false. I doubt that's your problem, however.


Nope. No effect. I am curious why though?


Because TRUE and FALSE are #define's that are defined somewhere in "windows.h", as I think 1 and 0 respectively. They pre-date the addition of the true and false reserved words to C++. I don't think true and false in C++ are guaranteed to equal 1 and 0, just not-zero and zero. (somebody correct me if I'm wrong on this...)

Share this post


Link to post
Share on other sites
Anyway, I'm not sure what's going on with your painting issues. Trying setting the WS_TRANSPARENT style on your static controls, I guess, but you shouldn't have to...

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!