Changing an MFC CDialog to a control inside another CDialog

Hi everyone,
In my MFC application i have a CDialog window which is shown (modal)
when clicking on a specific button. After some changes in my
application, I decided that I need the controls on that secondary
CDialog to be shown always inside the main window.
Is there a way to change the secondary CDialog derived window to a
control (like CStatic, etc) inside my main window, and not a child
window?
Maybe changing the devired class (CDialog to CStatic)? or changing some
properties in the CDialog and calling its Create method with a specific
parameters?

Thanks.

0
11/22/2005 9:47:14 AM
vc.mfc 33608 articles. 0 followers. Follow

6 Replies
603 Views

Similar Articles

[PageSpeed] 34

Menny wrote:

> Hi everyone,
> In my MFC application i have a CDialog window which is shown (modal)
> when clicking on a specific button. After some changes in my
> application, I decided that I need the controls on that secondary
> CDialog to be shown always inside the main window.
> Is there a way to change the secondary CDialog derived window to a
> control (like CStatic, etc) inside my main window, and not a child
> window?
> Maybe changing the devired class (CDialog to CStatic)? or changing some
> properties in the CDialog and calling its Create method with a specific
> parameters?
> 
> Thanks.
> 

Menny:

Sounds like you might want a CFormView?

HTH,

David Wilkinson
0
no-reply8010 (1790)
11/22/2005 12:47:23 PM
Menny wrote:
> Hi everyone,
> In my MFC application i have a CDialog window which is shown (modal)
> when clicking on a specific button. After some changes in my
> application, I decided that I need the controls on that secondary
> CDialog to be shown always inside the main window.
> Is there a way to change the secondary CDialog derived window to a
> control (like CStatic, etc) inside my main window, and not a child
> window?
> Maybe changing the devired class (CDialog to CStatic)? or changing some
> properties in the CDialog and calling its Create method with a specific
> parameters?
> 
> Thanks.
> 

There is a way to get the appearance you want.  Create the dialog with 
Create.  Turn off the dialog's titlebar and border properties.  Position 
it with dialog->SetWindowPos.  It is still a child window, but it is not 
visually apparent - it  blends in with the parent dialog.

Refinements: Be sure to handle OnOK and OnCancel with functions that do 
nothing.  Add the WS_CONTROLPARENT style for proper tabbing.

-- 
Scott McPhillips [VC++ MVP]

0
Scott
11/22/2005 1:18:20 PM
"Menny" <menny.evendanan@gmail.com> wrote in message 
news:1132652834.491602.173430@g49g2000cwa.googlegroups.com...
> Hi everyone,
> In my MFC application i have a CDialog window which is shown (modal)
> when clicking on a specific button. After some changes in my
> application, I decided that I need the controls on that secondary
> CDialog to be shown always inside the main window.
> Is there a way to change the secondary CDialog derived window to a
> control (like CStatic, etc) inside my main window, and not a child
> window?
> Maybe changing the devired class (CDialog to CStatic)? or changing some
> properties in the CDialog and calling its Create method with a specific
> parameters?
>
> Thanks.
>

Change the window style in the resource editor to be a Child instead of a 
popup, and remove the border.

Then Call CreateWindow instead of DoModal to create an instance of the 
dialog box, with the owning window as a second parameter.

Set the window position so the dialog is positioned.

and finally, call SetWindowLong with GWL_ID if you want the dialog to have 
an ID, so you can easily find it again.

Oh, and make sure the owning window has the Style Control Parent set, 
otherwise, the tab order will get stuck in your child.

Anthony Wieser
Wieser Software Ltd
Affordable Software and Consultancy for your home, school, or business.
http://www.wieser-software.com/products.shtml


0
me4394 (22)
11/22/2005 1:20:02 PM
Could you explain how?
I want to use my (already built) CDialog as an atomic control in my
main window, with as less as possible code changes.

0
11/22/2005 2:10:08 PM
Thanks, it works.
but!
i have problems with the SetWindowPos method's parameters.
What flags to use?
and, what should the first paramter be?
and, how to position? it always sticks to the left top corner.

0
11/22/2005 2:46:42 PM
Menny wrote:
> Thanks, it works.
> but!
> i have problems with the SetWindowPos method's parameters.
> What flags to use?
> and, what should the first paramter be?
> and, how to position? it always sticks to the left top corner.
> 

Hello Menny,
One good technique is to place a static control on the main dialog to 
serve as a landmark.  Put it where you want the child dialog, but make 
it invisible.  Use GetWindowRect and ScreenToClient to measure the x and 
y coordinates of the landmark control. Use these measurements in 
SetWindowPos to position the child dialog at the same x,y coordinate as 
the landmark.

CRect rc;
landmark->GetWindowRect(&rc);
ScreenToClient(&rc);
childDlg->SetWindowPos(NULL, rc.left, rc.top, 0, 0,
       SWP_NOOWNERZORDER | SWP_NOSIZE | SWP_NOZORDER);

-- 
Scott McPhillips [VC++ MVP]

0
Scott
11/22/2005 10:44:07 PM
Reply:

Similar Artilces:

External data link change
Hi, I've a sheet linked to an external data on the net, and I would like that a cell in this sheet to indicate the last date and time it was updated, the simplest way the better but I can do some programming too. Thanks for your attention, -- Domingos Junqueira No need of help any more, I solved the question. Thanks again ...

virtual memory of an mfc programm
Hello, I have an programm with own MFC classes for control and window manager classes. Now I want to control the memory of my programm: with the task manager, GDI-Objects - I found same leaks in my programm, this is OK now. But the 'virtual memory' size still grows when I make a lot of resizing of the frame. Now I control the 'virtual memory' size of Word (Word 2000). And, after a lot of resizing, popdown / popup, the virtual memory grows also. Is 'virtual memory' of a programm a good indicator of the used memory ? Is there any other ? Thanks a lot. Frank Iversen ...

how to display a activex control to toolbar?
i want to display a mfc activex control on toolbar, how to do? thanks The articel below shows how to add any control in a toolbar. THat will be a good start: http://www.codeguru.com/article.php/c2547 Another easy option might be to use a CDialogBar, which is based on a dialog template. It might be easy to add ActiveX to a dialog instead. --- Ajay ...

Why does the change change to a number?
Hi all, I've noticed something wierd and always wondered WHY it happens. When you type a date into a cell, and then change the Formatting of it to a 'general' cell, it turns into a number. How does it come up with that number? What is the significance? i.e. type today's date of "12/7/2007" - change it to a 'General' format, and it then says "39423". I'm a trainer of Excel and this question always comes up. I'm curious myself too. Thanks! Joe It's the number of days since January zero 1900 using Excel default for windows (M...

changing the way Excel displays selected cells
Is there a way to change the way Excel displays selected cells? I'm interested in viewing all the selected cells highlighted (with light blue for instance), but by default excel highlights all the cells but not the first one the same occurs when you define a range with no adyacents cells Your definition of the display is not quite correct. Excel highlights the current cell, Excel also highlights a selecte range. The currently selected cell is generally the first of a range, bu press enter and the current cell changes and becomes the second, the third etc in the range. You cannot...

DST changes for Exchange 5.5
I noticed the 2007 DST Calendar Update "Exchange tool" is available now: http://support.microsoft.com/kb/930879 This will seemingly take care of calendars for mailboxes still on Exchange 5.5 servers, as Exchange 5.5 is listed as "compatible" . However would this address the CDO issues such as BlackBerry users and OWA users still on Exchange 5.5 ? Thanks in advance, Itrcb4 On Mon, 12 Feb 2007 14:31:00 -0800, itrcb4 <itrcb4@discussions.microsoft.com> wrote: >I noticed the 2007 DST Calendar Update "Exchange tool" is available now: > >http://su...

Track Changes
How do i remove the track changes in outlook? When i press "Enter", a symbol that represents "Enter" will appears. Same for space etc. ...

more on VBA function name change
I thought I'd start a new thread since I haven't received any replies to my first one... To recap: I've declared a function in a module using mixed case: Function TMDE_Category (FormName As Form) I noticed recently that it appeared in the module as Function tmde_category(FormName As Form) I changed it back to the mixed case declaration, saved the module, exited the app, reopened it and looked. The function had changed back to the all lowercase declaration. Things I've tried since the original post: Using the databse documenter, I selected all ob...

Can't Publish changes with Deploy Manager
After a migration process, I can't publish the changes made on CRM. When I try do this in Deploy Manager I get the follow error: ---------------------------------------------------------------------------- ----- Publish done with errors. See the event log to get deitails NETRA-INOVACAO: ***Error*** Failed to download XSL template files from Web Server ---------------------------------------------------------------------------- ----- Can somebody help me? I don't know if the migration process have any relationship with the error. Thank you for pay attention. []'s Vin�cius Pitta...

How to change icon for my application
Hi, I am currently developing an application on visual studio 6.0, and i wish to change the MFC icon on my application header. Anyone can help? Thank you. Raed Sawalha wrote: > Hi, I am currently developing an application on visual studio 6.0, and i > wish to change the MFC icon on my application header. Anyone can help? Thank > you. > > Open the icon resource for editing by double clicking. Then notice the control just above the editing grid that lets you switch between editing the large icon and editing the small one. -- Scott McPhillips [VC++ MVP] thanx that work...

How to change newsgroup message font
Like many other ribbon based programs I sometimes struggle to find how to make a change. This time its how to change the font just for newsgroup messages? regards "nobody" wrote in message news:EWTao.39493$GF5.7129@hurricane... > Like many other ribbon based programs I sometimes struggle to find how to make a change. This time its how to change the font just for newsgroup messages? Newsgroup messages are usually plain text. The font used is that selected at [no name tab] > Options > Mail > Read > Fonts for the encoding specified for the messag...

Notify change of email address when changing ISP
How do I notify my entire address book of an email address when I change ISP's? Thanks By sending a mail to everyone ? If you do so, please use BCC for the adresses, this way you won't spread everybody's e-mail adres to everybody. Niels Bob Baker wrote: > How do I notify my entire address book of an email address when I change ISP's? > Thanks ...

Change a formula to an acual number
I want to change the formula I have created to the number it has created Example: Cell A1 is the number 1. Cell A2 is the formula =a1+1 creatin the number 2. I want this to be a two not a formula. Any ideas? Laura, copy, then paste special, valves -- Paul B Always backup your data before trying something new Please post any response to the newsgroups so others can benefit from it Feedback on answers is always appreciated! Using Excel 2000 & 97 ** remove news from my email address to reply by email ** "Laura" <anonymous@discussions.microsoft.com> wrote in message news...

Problem Changing an Investment Name
I am trying to change an investment name and Money 2006 tells me "The name or symbol 'TRP Spectrum Income' has already been used for a deleted investment. Please enter a different name." When I go to delete investments the name does not appear! Any ideas on how I get Money to accept the name change? This is the first time I have run into this situation and I have made numerous name changes in Money over the years. In microsoft.public.money, Ken wrote: >I am trying to change an investment name and Money 2006 tells me "The name >or symbol 'TRP Spec...

How to copy a column of values into another column where the cells are merged
Hi, I have a sheet with a column that lists some values. I also have a second sheet that has a column where the cells are merged every 4 rows. I need to copy the values of the first sheet into the merged cells, but when I do, I only see every fourth value on the merged cells. Is there a formula or any other way that I can use to be able to copy all the values from the first sheet into the second sheet each value on a different group of merged cells? Thanks! Assume you have values in A1:A5 of Sheet1 that you want to copy into Sheet2, where A1:A4, A5:A8, A9;A12 etc are merged. Put this formul...

Should I change this code?
Should I change 556 to 560???..............Thanks for your help..........Bob Private Sub Command560_Click() On Error GoTo Err_Command556_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = "frmClientInfomation" DoCmd.OpenForm stDocName, , , stLinkCriteria Exit_Command556_Click: Exit Sub Err_Command556_Click: MsgBox Err.Description Resume Exit_Command556_Click End Sub On Sun, 15 Jul 2007 16:37:26 +1200, "Bob V" <rjvance@ihug.co.nz> wrote: > >Should I change 556 to 560???..............Thanks for your help.....

Need to reference a block of cells from another sheet.
Dear All, apologies if this is probably a mundane question, but I didn't know what 'search terms' to put in google to return any results.. I've got a Spreadsheet with 12 tabs (sheets), I need part of tab 12 (sheet) to appear on tabs 1-11 (sheets), so that if I change data in tab 12 (sheet), tabs 1-11 (sheets) are changed too.. the cells themselves will never move location, just the data within them.. Is it possible? Regards Paul. On your sheet1 select the cell that should receive the data from Sheet12; Hold down the Shift key and Click on Sheet11 << this shoul...

How to change default font in Outlook 2003
Can someone tell me how to change tthe default font in Outlook 2003 when composing a new email. It always comes up as Times New Roman. I remember somewhere that I specified that Outlook should use Word as the text editor and that seems to be the case. I have Arial as my default font in Word but this seems to make no difference when using Outlook. Hi, Please go to Tools > Setting > Mail Format > Stationery and Fonts > Fonts It's right there :) On 20 Nov 2005 06:28:45 -0800, amarsarit@gmail.com wrote: >Hi, >Please go to Tools > Setting > Mail Format > Statione...

Moving exchange2k3 server machine account from default OU to another...
Hi all. I have an win2k3 std sp1 server with exchange2k3 std sp2 on it. The computer account of the server sits in the default Computers OU, and i want to move it to another computer OU for policy purposes. I have a 2k AD. I understand that this move should go without a problem, maybe a restart of the services afterwards? I'm not going to move any of the objects in the Microsoft Exchange System Objects OU, just the computer account. Any problems that might occur, and would those potential problems be ok if i just move it back to the default OU? -- Gripe On Fri, 19 May 2006 ...

icon changes with change of extension
when we change the extension of a file in windows, its icon also changes..... how does windows do tht. in my application i require a similar approach. i want the icon to be dependent on the file extension not on the attributes of the file. i have gone trough the registry but things are not very clear. Windows has listed all the file extensions avaliable there, but there is no general way to extract icons for those extension... kindly help icon changes with change of extension "Neelu" <nemesia31@gmail.com> wrote in message news:1161232739.720722.120950@b28g2000cwb.google...

Field Type Change
I am trying to change a free text field to a drop down menu in my current database, that already has data entered for this particular field, in order to avoid multiple versions of the same organization that are just typed in differently. I'm assuming that I'll need to recode the different versions of an entry to make them uniform but after that, I'm unsure how to proceed so I won't lose any data. Is this possible or will I need to delete the field, recreate it as a drop down and then re-enter the data? Thanks in advance! Mike Thanks everyone for all the input and advice s...

Tracking Changes
I am the author of a document and am making revisions to it. I want to chnage the redline color to denote new edits from the 1st version. Can anyone guide me through this process? I am sure it is easy but I cannot figure it out. THanks Peter On Wed, 10 Feb 2010 07:08:06 -0800, Peter SSI <Peter SSI@discussions.microsoft.com> wrote: >I am the author of a document and am making revisions to it. I want to >chnage the redline color to denote new edits from the 1st version. Can >anyone guide me through this process? I am sure it is easy but I cannot >figure i...

Save Changes? #2
Sometimes, but not always, Excel asks if I want to save the current file, even though I've made no changes. Does anyone know why this occurs, and if there is a setting I can change to avoid the prompt unless actual changes are made? Thank you. Sprinks There are a number of functions that will update themselves when the workbook is opened, and this causes Excel to act as though the workbook has been changed. These functions include NOW() , TODAY(), ROW(), etc. See Volatile Functions in help for more info. -- Cordially, Chip Pearson Microsoft MVP - Excel Pearson Software Consult...

colour change of dated box
How can I change the colour of a dated box of excel after the date is over. I want the programme to read date automatically from pc and change colour. try Conditional Formatting In 2003: 1. Select the cells you want to format 2. Choose Format, Conditional Formatting 3. Choose Cell Value Is from the first drop down 3. Choose Formula is from the first drop down 4. Choose less than 5. In the third box, enter =TODAY() 6. Click the Format button 7. Choose a color on the Patterns tab (or any available option) 7. Click OK twice. -- Hope this is helpful Appreciate that you provide your feedbac...

Daylight saving time changes for Exchange 2003 server
Hi guys, I was wondering how other real life systems administrators are preparing for the upcoming “2007 global time zone update for Windows” (daylight time change for exchange 2003 server). I'd like to know what contingency plans are being planned out to implement this update and what practical ideas you think thus far are the best. I would greatly value your input. http://www.microsoft.com/windows/timezone/dst2007.mspx -Thanks! ...