|
Look for GetActiveView ( from CFrameWnd ) call this on the MainFrame ( AfxGetMainWnd ), and with the view, you GetDocument.
Max.
|
|
|
|
|
I attempted your suggestion with this code:
void ModuleTab::OnModulemenuAddchannel()
{
// TODO: Add your command handler code here
CString display;
int work;
AfxMessageBox(_T("add channel. later."));
//start
CFrameWnd* pMWnd;
pMWnd=(CFrameWnd *)AfxGetMainWnd();
CView* pVWnd;
pVWnd=pMWnd->GetActiveView();
CGENyDoc* pDoc;
pDoc=(CGENyDoc *)pVWnd->GetDocument();//fails debug assertion here.
//end
work=pDoc->m_myint;
work++;
pDoc->m_myint=work;
display.Format(_T(" value: %d"),work);
AfxMessageBox(display);
Invalidate();
}
It fails where i call get document. It appears that I'm getting the wrong pointer.
Any suggestions?
Jeff Rothenberg
Project Engineer
Vector CANtech, Inc.
|
|
|
|
|
I'm sorry, I was too fast to answer : The view is inside a frame window.
I do this to get the view:
CMainFrame *pMainFrame = ( CMainFrame* )AfxGetMainWnd();
ASSERT( pMainFrame );
CMDIChildWnd *pChild = (CMDIChildWnd *) pMainFrame->GetActiveFrame();
CView* pView = pChild->GetActiveView();
Max.
|
|
|
|
|
Great!! works good thanks
Jeff Rothenberg
Project Engineer
Vector CANtech, Inc.
|
|
|
|
|
What's the easiest way to play a sound. Does VS have a function that will do this?
|
|
|
|
|
Try the PlaySound(...) API function!
Daniel
---------------------------
Never change a running system!
|
|
|
|
|
I am designing a program that acts as a countdown timer. However, because the function called from the GUI doesn't stop running until the time has decremented to zero, the GUI can't show how much time is remaining. Here's the source:
void CtimerDlg::OnBnClickedStart()
{
int currentTime = 0;
int timeInSeconds = 0;
char min[5] = "";
char sec[5] = "";
char setTime[12] = "";
UpdateData(true);
currentTime = time(NULL);
minutesRemaining = setMinutes;
secondsRemaining = setSeconds;
sprintf(min, "%i", setMinutes);
sprintf(sec, "%i", setSeconds);
strcpy(setTime, min);
strcat(setTime, " : ");
strcat(setTime, sec);
startTime = setTime;
timeInSeconds = ((setMinutes * 60) + setSeconds);
while(timeInSeconds != 0)
{
if(currentTime != time(NULL))
{
if(secondsRemaining == 0)
secondsRemaining = 60;
timeInSeconds--;
secondsRemaining--;
sprintf(sec, "%i", secondsRemaining);
secLeft.SetWindowText(sec);
currentTime = time(NULL);
}
if(secondsRemaining == 59)
{
minutesRemaining--;
sprintf(min, "%i", minutesRemaining);
minLeft.SetWindowText(min);
}
}
UpdateData(false);
}
// end code
How can I get the GUI to update while the progam is executing?
-Thanks
|
|
|
|
|
Maybe you should spawn a thread to countdown?
Jeff Rothenberg
Project Engineer
Vector CANtech, Inc.
|
|
|
|
|
I'd use a timer instead, then you can have a handler function that gets called every second, which will allow normal GUI operations to continue
--
Help me! I'm turning into a grapefruit!
|
|
|
|
|
There are several soltuions. One solutin is a timer queue timer that will call a callback after upon tick.
Kuphryn
|
|
|
|
|
kvan07 wrote:
How can I get the GUI to update while the progam is executing?
Pump the message queue. See my TaskTimer[^] article for instructions.
/ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
Hi,
I have a CTreeCtrl with a font set to 'Courier'. When I try to determine the width of a text item in the tree I do something like:
<br />
CDC* pDC = m_ctrlTree.GetDC();<br />
int nItemWidth = pDC->GetTextExtent(strItem).cx;<br />
The width I receive is smaller than the actual text width. It seems that the font of the DC ('system') is not equal to the font of the tree control ('courier').
Does anyone know how this can be?
|
|
|
|
|
Try this (I haven't tested it, but it might work):
CDC* pDC = m_ctrlTree.GetDC();
CFont *pFont=pDC->SelectFont(m_ctrlTree.GetFont());
int nItemWidth = pDC->GetTextExtent(strItem).cx;
pDC->SelectFont(pFont);
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Thanx for your reply, but the CDC does not have a SelectFont.
|
|
|
|
|
It's a typo: Substitute SelectObject for SelectFont .
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Thanx! It works!
|
|
|
|
|
In xp prof window when we click start->Run then run window(with title Run) appears
is there any way in a program that this window appears programatically ?
if it is an exe file where is it?
so that i could start it like a process.
r00d0034@yahoo.com
|
|
|
|
|
It's a pretty simple thing, just use SHBrowseForFolder ( or whatever it is ) and ShellExecute and build your own.
Christian
No offense, but I don't really want to encourage the creation of another VB developer.
- Larry Antram 22 Oct 2002
C# will attract all comers, where VB is for IT Journalists and managers - Michael
P Butler 05-12-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not
as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
I want to modify or set global printer setting.
1) Enter to Control_Panel -> Printer
2) right click on printer list and change setting
but I want to set from visual c++
How can I do that ?
Thank in advanced for your kindness
|
|
|
|
|
I don't remember the details, but I am sure MSDN has a code snippet that does this. msdn.microsoft.com[^]
Christian
No offense, but I don't really want to encourage the creation of another VB developer.
- Larry Antram 22 Oct 2002
C# will attract all comers, where VB is for IT Journalists and managers - Michael
P Butler 05-12-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not
as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
I can't find what exactly is this (I already search it)
Please tell me
Thanks a lot
|
|
|
|
|
I'm sorry, I'm not trying to be difficult, I really don't know. I did this stuff 2 years ago and am sure it was there now, but they've been removing a lot of the useful stuff for VB.NET and C# information lately....
Christian
No offense, but I don't really want to encourage the creation of another VB developer.
- Larry Antram 22 Oct 2002
C# will attract all comers, where VB is for IT Journalists and managers - Michael
P Butler 05-12-2002
Again, you can screw up a C/C++ program just as easily as a VB program. OK, maybe not
as easily, but it's certainly doable. - Jamie Nordmeyer - 15-Nov-2002
|
|
|
|
|
Perhaps EnumPrinters() and SetPrinter() may help. (This is just a guess). Good luck!
/ravi
Let's put "civil" back in "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
It's application default setting. I had try it before
Anyway. Is there set global printer setting ?
Thanks a lot
|
|
|
|
|
Hi,
I'm using Tahoma font ( well I've tried with Arial as well and...), I have realized when I display the text rotated (90º) it is not stretched at all ( in the normal way, sometimes I see that some letters have no space between them).
The problem is that GetTextExtentPoint doesn't calculate that extra space, so when I show the text rotated some times it doesn't fit to that space .
Is there a way to apply the same spacing for normal and rotated font layout ?, Or a way to calc the extra space needed for rotated fonts ?
Thanks in advance, greetings
Braulio
|
|
|
|