|
Weiye Chen wrote:
Mine is a console application. No windows api involved.
You can still call Win32 API's!!! Like GetCommandLine.
And, BTW you *can* create a "windows" even in a commandline program, JFYI!
|
|
|
|
|
ahz wrote:
You can still call Win32 API's!!! Like GetCommandLine.
Oops, i forgot to mention the program will be deployed on a unix environment.:->
<font=arial>Weiye Chen
Life is hard, yet we are made of flesh...
|
|
|
|
|
Can give me example of source code of a dialog? I want some example that when I click on a button, it will automatic send a hello message.
|
|
|
|
|
ON_BN_CLICKED( IDC_MYBUTTON, OnMyButtonClicked )<br />
...<br />
void MyDialog::OnMyButtonClicked()<br />
{<br />
AfxMessageBox("Hello Message" );<br />
<br />
}
or something to that effect.
Maximilien Lincourt
Your Head A Splode - Strong Bad
|
|
|
|
|
Maximilien wrote:
AfxMessageBox("Hello Message" );
Assuming he wanted to send the hello message to the screen.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
AfxMessageBox("Hello Message" ) is appear a message box in the screen right? But I just want a message to print out on the screen not a message box
|
|
|
|
|
Try to use TextOut() function with reference to window rect coordinates from GetWindowRect() ...
I did not try it out ...but this should work
redindian
|
|
|
|
|
Can give some example of source code on the function that you suggest?
|
|
|
|
|
|
|
|
I just want a message to print on the screen but not a message box
|
|
|
|
|
I have an external application that launches my application. I have a global variable that determines whether my app was launched via the other app or just by opening the executable. If launched via the other application, two processes or instances gets created and the global variable is set to 1. The first instance will be created but the window frame will not be shown. The other instance will display the window. One instance has the global value initialized to 0 while the other one has it set to 1. I need to block the instance that has global variable = 0 and let the other one run. Once that thread completes, I want the other thread (I believe it’s the main thread) to continue running. I tried using a mutex around my code but it still seems to be doing context-switching. How can I put a hold on thread1? I’ve tried using events but no such luck. This is what I have. Thanks!
<pre>
InitInstance()
{
mutex = ::CreateMutex(NULL, FALSE, “X”);
if(mutex==NULL)
{
AfxMessageBox("Error: Problem with creating the mutex");
return FALSE;
}
else {
WaitForSingleObject(mutex, INFINITE);
if (!bGlobalVariable)
{
OneInstance = ::CreateMutex(NULL, FALSE, “instance”);
DWORD dwMutexErr = GetLastError();
if (dwMutexErr == ERROR_ALREADY_EXISTS)
return FALSE;
}
ReleaseMutex(mutex);
}
if (!GlobalVariable)
//show window
return TRUE;
}
</pre>
-- modifed at 17:51 Thursday 25th August, 2005
|
|
|
|
|
I'm looking for ideas. I have an embedded application that must respond to a changing system environment. A good analogy would be a loosely networked set of PCs. My application (SDI, but heavy on dialogs) monitors this system and allows the user to program it. If everything is stable, then I have no problems. The issues start when I have a 4 node system, and the 2nd node drops out. Because of my dialog layers, I could easily be 4 layers into dialogs when this occurs.
Is there any way to cleanly "unwind" from my dialog stack in a programmatic fashion?
Still learning...
C. Gilley
Will program for food...
Whoever said children were cheaper by the dozen... lied.
|
|
|
|
|
I could not undersstand the following line ..
Is there any way to cleanly "unwind" from my dialog stack in a programmatic fashion?
...ill be better if u come up with a detailed description of the issue
redindian
|
|
|
|
|
unwind is the best word I could come up with.... this is what my GUI looks like in a very simple fashion:
m_pMainWnd...
CMyDialog1 myDlg(this);
myDlg.doModal();
and again and again. In essence I have a stack of dialogs one on top of the other. Suppose this stack is 6 dialogs deep, how do I get out of the stack of dialogs back to the main window? Usually, the user would press continue, cancel, etc. and navigate their way back. I need to be able to do it automagically via code...
did that help?
C. Gilley
Will program for food...
Whoever said children were cheaper by the dozen... lied.
|
|
|
|
|
r these dialogs modal or non modal?
"faith, hope, love remain, these three.....; but the greatest of these is love" -1 Corinthians 13:13
-- modified at 5:47 Friday 26th August, 2005
|
|
|
|
|
Good morning - these dialogs are all modal...
C. Gilley
Will program for food...
Whoever said children were cheaper by the dozen... lied.
|
|
|
|
|
Good Morning!
hmmmm.....modal!.....well if those were non modal,u could post a message to the previous windows to close,then destroy the topmost one!....
since this is modal,all the dialogs run on the same thread!.....
i am not sure,but try the following out!
on the button click of the topmost modal dialog,a function say 'buttonclick()' should be called.This function should post a message(make that a userdefined message) to its immediate parent which would trigger a function say funct1()in itz parent.
Then,this 'buttonclick()'function should close the topmostdialog.
//NOW THE TOPMOST DIALOG CLOSES,AND ITS PARENT BECOMES THE TOPMOST.
now this message which was posted to the parent by the ex-topmostdialog gets recieved,and gets processed by the function corresponding to the message that was sent by its child(or the ex-topmost dialog).....this function in the parent called 'funct1()' should do the same process as done by the 'buttonclick()'function.....
use this technique,and u should be able to get as desired!....please note that ,i havent tried this out!justa solution.....
if u want to know how to send user defined messages and handle them just go thru the following link.....(try the WM_APP: constant messages,they should be easy to setup!)
http://www.codeproject.com/dialog/messagemgmt.asp[^]
cheerz.....
"faith, hope, love remain, these three.....; but the greatest of these is love" -1 Corinthians 13:13
|
|
|
|
|
Ha! I love how requirements change. Since this is an intellectually challanging design issue, I'll continue to poke around. But, I have just learned that should a system component go away (triggering the need to unwind), the entire system is going to reset (means I lose power to my system). Poof, issue resolved.
Nothing like rebooting to unwind the stack of dialogs eh?
Thanks for all your suggestions, they've given me something to work with and concepts to study.
C. Gilley
Will program for food...
Whoever said children were cheaper by the dozen... lied.
|
|
|
|
|
Hi,
I am using TreeView.TopNode to get the first root node of my treeview. This does not work for me all the time however. If you read the .NET Framework on this property, I think they state this also by saying:
Initially, the TopNode returns the first root tree node, which is located at the top of the TreeView. However, if the user has scrolled the contents, another tree node might be at the top.
I don't understand why the TopNode would return a different node after a user scrolled through the treeview. Does anybody know why? And in this case, how else could I get the first root node? Thanks.
TraileR ParK LifE 4Ever
|
|
|
|
|
One way would be to get the top node and save it in a member variable. That way you'll always have access to the top node no matter what amount of scrolling has transpired.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Thanks for the reply David. I simply chose to just get the first root node through the treeview.Nodes.get_Item(0) property, like Jose suggested but your way definitely works as well. Thanks.
TraileR ParK LifE 4Ever
|
|
|
|
|
/*Trucker*\ wrote:
I simply chose to just get the first root node through the treeview.Nodes.get_Item(0) property, like Jose suggested...
Which is a much cleaner solution. I'm not familiar with the .Net stuff so some of my answers are not always straight forward.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
TopNode returns "the first fully-visible tree node in the tree view control". That is, it only considers those nodes that are currently visible, and that's why its result may vary if the user has scrolled.
If what you want is the absolute first root node, I think it should be the first element of the collection you get through the Nodes propety.
--
jlr
http://jlamas.blogspot.com/[^]
|
|
|
|