|
I didn't mean for you to literally add that line, that was just a template like example where you're supposed to replace the CReceive* with the actual pointer to the other window.
That or you can just pass the handle directly in the constructor of the send window
in header
public:
CSend(CWnd* pParent = NULL, HWND h_recievewnd = NULL); // standard constructor
in implementation
CSend::CSend(CWnd* pParent, HWND h_recievewnd)
{
ASSERT(h_recievewnd);
ASSERT(::IsWindow(::FromHandle(h_recievewnd)));
::PostMessage(h_recievewnd, WMU_FUN_MSG, 0, 0);
}
Of course you should make sure and Create CReceive first to get the handle to pass to the constructor of CSend
|
|
|
|
|
Joel Lipschultz wrote:
I start a new MFC app and created 2 classes via classwizard, say CSendClass and CReceiveClass (both derived from generic Cwnd). To create the user-defined message stuff, I:
Joel Lipschultz wrote:
I add the following line to the constructor of CSendClass:
Further more you should do ::FromHandle on your CReceive HWND and then ::IsWindow() to make sure the window has been created and the Message Proc has been started. If ::IsWindow is NULL you can not send messages.
You definately should put that elsewhere than the constructor of the other CWnd if they are created "at the same time"
|
|
|
|
|
First of all, thanks for your help. I stepped into the PostMessage function and the Program crashes on the following line, in afxwin2.inl, line 41: (basically what you suspected)
{ASSERT(::IsWindow(m_hWnd)); return PostMessage(m_hWnd, message, WPARAM, LPARAM);}
Given that the program fails when IsWindow returns false -- what would you recommend doing? You mention putting the PostMessage() call in somewhere other than the constructor, but I don't know where else to put it. I tried the Destructor, and it gives the same result.
I am just starting to learn MFC, so please be as descriptive as possible. I appreciate it.
Joel L.
|
|
|
|
|
I did as you suggested, and now the program doesn't go into the if statement (i.e. receiveClass->handle equals NULL).
Joel L.
|
|
|
|
|
WiB forgot these all important steps
CWin->CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, LPVOID lpParam = NULL);
CWin->ShowWindow(SW_SHOW);
CWin->UpdateWindow();
|
|
|
|
|
additionally, I recommend you read "programming windows with mfc" - Jeff Procise
|
|
|
|
|
Thank you all, my program works just fine now. I appreciate the help.
Joel L.
|
|
|
|
|
Ok, I set up the project the way you and WiB suggested. Unfortunately, I am having trouble provided parameters for the CreateEx function. I tried doing:
CWin->CreateEx(CReceiveClass, NULL, WS_OVERLAPPEDWINDOW, CRect(50,50, 100, 100),NULL, NULL, NULL);
but haven't had any luck. Can you please provide some parameters for the CreateEx function so my program will draw a basic frame?
Joel L.
|
|
|
|
|
Are you actuall Creating windows for your two classes: CSendClass and CReceiveClass? My guess is not. That would explain why IsWindow() is failing and you are getting the ASSERTs. Instantiating a CWnd derived object does not Create a window.
Neville Franks, Author of ED for Windows. Free Trial at www.getsoft.com
|
|
|
|
|
How can I connect to a remote database with my ID and Password using VC6 but without a Server Terminal App?
Is this possible?
Thank you very much!
FoolBear
|
|
|
|
|
If you mean in code then it depends what kind of database. If it is for example SQL Server - use ADO[^] to do it.
If not in code than I don't know what you mean
Philip Patrick
Web-site: www.stpworks.com
"Two beer or not two beer?" Shakesbeer
|
|
|
|
|
OK,just bellow:
I used SQL Server 2000 created a data source.Then I put it on to my homepage.Although The server support SQL Server DataBase,but it is impossible for him to run a srever App for my Client App.So I must used my ID and Password connect to it directly from my Client App.Also I want it to work very smoothly no matter where my Client App runs.
FoolBear
|
|
|
|
|
FAADI wrote:
What should I do
Detect what exactly is going wrong: Does it receive WM_CLOSE, is there a return value designating failure, are your splitter classes handling shutdown OK?
Please post all relevant error messages.
My opinions may have changed, but not the fact that I am right.
|
|
|
|
|
Hi
I've made a CStringArray m_array.
It contains about 20text items and 1 text item who is really a integer.
m_array[0] = "TEXT";
m_array[1]="123";
Any easy way to detect when we are dealing with a whole number field?
Greetings
Jens
|
|
|
|
|
for(int i = 0; i < m_array.size()-1; i++)<br />
{<br />
if(m_array[i] == "123")<br />
{<br />
[...do this...]<br />
}<br />
}
thats one way.
*.*
cin >> knowledge;
|
|
|
|
|
No sorry. It is a number, but not always "123".
YOu can't know it in advance.
(sorry if i made question not clear enough)
|
|
|
|
|
<br />
<br />
for(int n=0;n!=m_array.GetSize();n++){<br />
if(m_array[n].GetLength()){<br />
if(isdigit(m_array[n].GetAt(0)))<br />
MessageBox(m_array[n]+" wow! is a number");<br />
}<br />
}<br />
|
|
|
|
|
Thanks alot wb
I did this trick by your help :>
<br />
for (i=0; i<TextArray[2].GetLength(); i++ )<br />
{<br />
if ( !(isdigit(TextArray[2].GetAt(i))) )<br />
{<br />
bOk = false;<br />
}<br />
}<br />
|
|
|
|
|
That'll work, assuming you don't have any instances of something like "1ABC" or "ABC1" in the array.
|
|
|
|
|
try :
<br />
if (atoi (m_array[0])==0 && m_array[0]!="0")<br />
else<br />
You can alos go through each and every one of the character in the string and use the IsDigit function
Shay
|
|
|
|
|
Hi,
Is there any sample code in VC++ to zoom the image display.
I use Bitblt() function to display the image in a view.
Regards
Neha
|
|
|
|
|
|
i am trying to develop an application which prints the web page even it spans horizontally/vertically multiple pages.
i am converting the html document to image and printing the same.
since i am capturing the screen and printing the image ,my css style properties specific to printing are lost.
How do i tell the browser control to read the print media specific information so that when it loads the page it renders the print media specific info onto the screen. is there any exposed method in webbrowser control or what interface should i use to achieve the functionality.
Please suggest me ..
gvs
|
|
|
|
|
Hallo,
i´ve software which supports different languages (german, english, frensh). The software is compiled on a german system and needs a statically linked MFC. So the problem is that Error Messages which come from the MFC such as by CException::ReportError() are already in german.
Is there a way to compile the software with the english version of MFC or to make the language of this messages dependent on system language?
Thanks,
Andy
|
|
|
|
|
Hi Big A!
Still have to fight with my inherited burden?
Two possibilities:
1. Compile the whole stuff on your english dev-station (which is always better I think)
2. uncheck the statically linked MFC stuff in the linker-options and redesign the installscripts...
hope this helps a little...
greetings from a strange world,
Olli!
Olli
"Ooooooh, they have the internet on computers now!" Homer Simpson
+ = NULL :=>
|
|
|
|