|
That worked just fine.
Now I feel a little humble (i.e stupid) as to how easy the solution was.
Thanks for your help. I think I need to take a break
Michael
|
|
|
|
|
lpstrFile is also used to return your user's selected file(s). The reason your app is crashing is because the buffer you are supplying is too small. Also, you have to set the nMaxFile member to the same size as your buffer. According to MSDN, the buffer should be at least 256 characters.
TCHAR buffer[256] = {0};
_tcscpy(buffer, _T("MyFile.txt"));
my_file_dlg.m_ofn.lpstrFile = buffer;
my_file_dlg.m_ofn.nMaxFile = 256;
Sonork 100.11743 Chicken Little
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
Within you lies the power for good - Use it!
|
|
|
|
|
Hi guys,
I just want to know how you attach an existing view when creating a new ChildWnd
When using CMDIChildWnd::Create, it doesn't specify which view it wants to use. Maybe there is another funciton.
Thank you respectfully
Raj Qbus Surendra
|
|
|
|
|
Hi,I have two MFC (MDI) projects written in VC++ 6.0, Project1, Project2
I would like to call the axcutable file of project2 in one of the menu options of project1. What is the code to do that?
How can I have a pointer from project1 to the Doc and View class of project2 in order to access its functions????
Ehsan Behboudi
|
|
|
|
|
mr2003 wrote:
I would like to call the axcutable file of project2 in one of the menu options of project1. What is the code to do that?
Use ShellExecute() or CreateProcess().
mr2003 wrote:
How can I have a pointer from project1 to the Doc and View class of project2 in order to access its functions????
Either put the common code in a DLL that both EXEs can use, or have EXE1 post a message to EXE2.
|
|
|
|
|
thanks for the help...
I have another question,, say in the menu of program1, i have to following function,,
CPogram1View:: OnFile_CallProgram2_FunctionXXX()
{
//I want to be able to call that specific function of program2..
// how can I do that?
}
Ehsan Behboudi
|
|
|
|
|
Did you consult the documentation for the two functions I mentioned?
|
|
|
|
|
I use this code to call one process from other
char* program="project2.exe";
//llama al proceso EcoSG.exe y deja el proceso llamador en espera
_spawnl(P_WAIT,program,program,arguments,NULL);
Daniel Cespedes
"There are 10 types of people, those who understand binary and those who do not"
"Santa Cruz de la Sierra Paraiso Terrenal!"
daniel.cespedes@ieee.org
|
|
|
|
|
Sorry if this seems like an easy or elementary question.
I was hoping to make a MFC dialogue program for my students that would present them with a question and use radio buttons for them to answer with. When they had checked their answer there would be a next button to move on to the next question. I can't figure out how clear the question or to add possibly more or less radio buttons after the student clicks the next button. I also need to know how to size the window to match the screens resolution. I don't know if this type of program is even possible using a MFC dialogue program. If not please tell me witch I should use. Any help on this would be great including pointing me in the direction of the correct articles/tutorials. Thank You.
|
|
|
|
|
Try setting it up as a wizard instead of a single dialog. Look at the MSDN documentation on how to create a wizard.
Larry
Larry J. Siddens
Cornerstone Communications
TAME THE DOCUMENT MONSTER
www.unifier.biz
|
|
|
|
|
Anonymous wrote:
I can't figure out how clear the question...
The question would be in an edit control. Use SetWindowText() and GetWindowText() accordingly.
Anonymous wrote:
...or to add possibly more or less radio buttons after the student clicks the next button.
Put the maximum number of radio buttons that will be needed on the dialog at design time. Show/hide them as needed throughout the quiz.
Anonymous wrote:
I also need to know how to size the window to match the screens resolution.
Normally, this is not necessary and doesn't fit the profile of a dialog. Anyway, ShowWindow(SW_SHOWMAXIMIZED); in the dialog's OnInitDialog() method will do it.
|
|
|
|
|
Radio buttons:
You could try placing the maximum number radio buttons that you would need on the dialog and then use ShowWindow() to show or hide them. You will also needed to use SetWindowText() (a.k.a. WM_SETTEXT) changed the text associated with the buttons depending on the question.
Give the buttons generic name line IDC_RADIO1, ID_CRADIO2, etc...
------------------------------------------
Sizing:
David Crow gave a good answer but I think you might want to go further than just maximizing the window. Search codeproject for resizable dialog box aticles. The reason I am sugesting this is that you may want the controls in your dialog box to adjust there size and position according to the size of the dialog box. Of course for such a simple program you may not care.
INTP
|
|
|
|
|
I am having problem with the dialog box
with CDataGrid. Once I open the dialog box and
close, I can't open it for the second time.
I think the problem is the way to initialize
and close the dialog box. I am supposed to do
something with CDataGrid?
Thanks in advance.
Shin
|
|
|
|
|
Hello,
I try to open a dialog with a custom control, calling the finction Dialog.DoModal(). The Function returns imediatly and the Dialog is not shown. (Returncode -1, GetLastError() 0)
If I start a new Dialog based MFC application, I can insert a custom control in the Dialog and the Application runs fine.
Compiler and Linker Settings seem to be the same in both projects.
I can use the custom control in my application in dialogs which are used as view in a splitter window.
Can anyone tell me whots going wrong an what I have to do to get the things running?
Regards
Bernd
|
|
|
|
|
Does it have anything to do with the control needing to be registered?
|
|
|
|
|
I don't think so. I steped through the code. The Custom controls classes are registered before the dialog is creaded.
The dialog has a membervariable of the custom controls type and if I step through the Constructor I can see when the Custom controls class is registered.
I steded through the DoModal() and somewhere in CreateDialogIndirect I get a fail. (code not available at the moment)
|
|
|
|
|
By registering, I meant using regsvr32.exe. I've not tried this via code.
|
|
|
|
|
The custom control is implementet in the application and not in a dll or something else.
I can use it the same way I tried it in ma Application in other sample programs without problems.
|
|
|
|
|
Iam new to programming in .NET's C++ and I am a little puzzeled on how to perform the following
Objective: I need to have a main PC communicate with to other PC's. The information I need from the additional PC's is what is currently running(i.e. windows programs, etc.) and send a message back. After that I need to have the main PC shutdown or shutdown/reboot the additional PC's and or the main PC
I know I know how to perform the Shutdown or shutdown/reboot.
How do I communicate with the other PC's to tell me what is running on them?
Is there anything that I can research which will help me?
Thank you for your help
|
|
|
|
|
You might use the windows performance monitor api. If you have used the windows performance monitor, you know that you can look at a report of what processes are running. Look at WMI.
Alternatively, rather than query for all that info and make a remote decision, why not signal a check on the computer to be shut down? You would write a service that would run on the shutdown-able PCs. There are multiple ways to signal the remote service, however since you probably are interested in signalling all such PCs, a mailslot (using a * for the coputer name) may be the easiest approach.
Obviously, I'm not providing details here, but direction for further research on your part.
tim
tim
Founder, TMurgent Technologies
www.tmurgent.com
tmangan@tmurgent.com
|
|
|
|
|
Hi,
I have a dialog who will contains other dialogs accessible by a CTabCtrl control.
When I click the tabs, I change the dialogs to display.
I want to display the dialogs in the tab control, under the tabs.
To do this I have to get the dimensions of the rectangle corresponding to the CTabCtrl itself minus the height of the tabs.
The problem is that I am not able to get the good position of the tab control.
I have to modify the position with number freeze in the code. I am not sure that it will be correct for all monitors.
The code is taken from the article "Creating a CTabCtrl Application" in CodeGuru.
Here is my code:
void CPref_04::SetRectangle()
{
CRect tabRect, itemRect;
int nX, nY, nXc, nYc;
m_TabPref.GetItemRect(0, &itemRect);
// uses GetDlgItem to return a pointer to a user interface control
CTabCtrl* pTab;
pTab = (CTabCtrl*) GetDlgItem(IDC_TAB_PREF);
pTab->GetClientRect(&tabRect);
nX = itemRect.left + 10; <----- number freeze in the code
nY = itemRect.bottom + 12;
nXc = tabRect.right - itemRect.left;
nYc = tabRect.bottom - nY + 10;
m_tabPages[0]->SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_SHOWWINDOW);
for (int nCount = 1; nCount < m_nNumberOfPages; nCount++)
{
m_tabPages[nCount]->SetWindowPos(&wndTop, nX, nY, nXc, nYc, SWP_HIDEWINDOW);
}
}
Thanks for any help
Claude
|
|
|
|
|
Try getting the window rect and use ScreenToClient() if applicable.
Kuphryn
|
|
|
|
|
RECT r;
tabCtrl.GetWindowRect(&r);
tabCtrl.AdjustRect(FALSE, &r);
tabCtrl.ScreenToClient(&r);
or somethign along the lines... (I could dig up a project and look it up if this doesn't work as intended)
"Der Geist des Kriegers ist erwacht / Ich hab die Macht" StS
sighist | Agile Programming | doxygen
|
|
|
|
|
Hi Claude,
I use this code to activate a page:
int
CDlgTabCtrl::SetActivePage( int iPage )
{
//Place the window top-left under the tab-control
CRect rect;
GetClientRect( &rect );
AdjustRect( FALSE, rect );
CRect rectTab;
GetWindowRect( &rectTab );
GetParent()->ScreenToClient( rectTab );
rect.top +=rectTab.top;
rect.left +=rectTab.left;
//verify parameters
if( iPage+1 > m_iPages )
{
iPage =0;
}
if( iPage < 0 )
{
iPage =m_iPages-1;
}
// get the actual page
CDlgTabPage* pPage;
pPage =(CDlgTabPage *)m_Pages.GetAt( m_iActivePage );
// deactivate it
pPage->ShowWindow( SW_HIDE );
HighlightItem( m_iActivePage, FALSE );
// get the new page
pPage =(CDlgTabPage *)m_Pages.GetAt( iPage );
//adjust the position and show it
pPage->SetWindowPos( NULL, rect.left, rect.top, 0, 0, SWP_SHOWWINDOW | SWP_NOSIZE );
pPage->m_pTabCtrl =this;
pPage->OnSetActive();
m_iActivePage =iPage;
HighlightItem( m_iActivePage, TRUE );
// set the CTabCtrl-element
SetCurSel( m_iActivePage );
SetFocus();
//OkeeDokee
return m_iActivePage;
}
Make sure to set the DS_CONTROL style to your dialog pages, makes life a lot easier...
dirk
|
|
|
|
|
I have wrote a simple keyframe grabber using the directX api that grabs a frame on time intervals,
Would any one know of a library or a way to determine when to grab a frame based on scene change? Any help or guide would really be a life saver!!
|
|
|
|