|
Hi
I need help with the following knowledge base article
http://support.microsoft.com/kb/147578[^]
In a method of my main window I have the following code
CMainframe::Process()
{
HWND main_handle = (HWND) this;
In my worker thread
CWnd* windowptr = new CWnd;
windowptr->attach(main_handle);
windowptr->SendMessage(...
My question is this coding correct as the article says
When working between threads not to pass object pointers
Rather handles and attach the handles to the MFC object
Thanks
As I am s getting exceptions on the SendMessage in my worker thread
|
|
|
|
|
ForNow wrote: As I am s getting exceptions on the SendMessage in my worker thread What exception is being thrown? Are you trying to send a UI-related message to the main thread from a worker thread?
"One man's wage rise is another man's price increase." - Harold Wilson
"Fireproof doesn't mean the fire will never come. It means when the fire comes that you will be able to withstand it." - Michael Simmons
"Show me a community that obeys the Ten Commandments and I'll show you a less crowded prison system." - Anonymous
|
|
|
|
|
The worker thread is communicating with Hercules
dos C program when I get information
From Hercules I do a readfile (named pipes)
And send the buffer ptr as a wparam
The buffer is allocated on the heap via new
So any thread can access it
|
|
|
|
|
Hello everyone.
I was wondering what advice can you give on how to create a data/business model in C++. I mean, when working with C# I usually have no problems, simply follow .NET's guidelines, but it seems there aren't guidelines in C++ on this regard. Is there any example you'd like to share?
I'm thinking common scenarios like a sales system (product, warehouse, pricing, purchase order) or a search inverted index (term, documents, posting, posting lists, dictionaries).
What are your thoughts?
|
|
|
|
|
Hi,
I have a dialog box and an Edit box control on that. I want to make this edit box accept only digits ( 0 - 9 ), no character or special characters.
I have changed its property "Number" to true in resource dialog but when I run the application, the screen blinks every time I press any character.
Or is there any way that I can manually change it to accept only digits.?
Any help will be appreciated.
Regards,
Mbatra
|
|
|
|
|
You could overwrite the OnChange Handler (I think it was EN_CHANGED or something like that) and manually get the text, check for any non-digit and remove it. Then set the corrected Text with SetWindowText(), or ReplaceSel().
There are however several pitfalls you need to avoid. First, setting the text programmatically also calls the event handler, and you need some status variable to prevent "recursive" calls.
Second, You need to take the cursor position into account. When you call SetWindowText(), usually the whole edit control content is selected. You could set the cursor position to the end with SetSel() (IIRC you need two calls, one to mark everything and at the same time set the cursor to the end, a second one to mark nothing and leave the cursor where it is.) Since the user may have entered something in the middle you may want to get the cursor position before changing anything (with GetSel()) and set it back to that position later.
I usually avoided these issues by letting the user enter the wrong values and checking them when the control lost focus, unless where was a strong argument against this approach.
|
|
|
|
|
Thanx for the reply Freak30.
I got the solution.
Regards,
Mbatra
|
|
|
|
|
How about sharing your solution here?
|
|
|
|
|
Hi,
Here is the solution:
I handled OnUpdate() function.
This will not allow user to enter characters or special characters.
void Position::OnUpdateEditRotate()
{
CString str;
(static_cast<cedit*>(GetDlgItem(IDC_EDIT_ROTATE)))->GetWindowTextW(str);
LPTSTR pBuff = str.GetBuffer( 10 );
bool bProblem = false;
for ( int indx = 0; indx < str.GetLength(); indx++ )
{
char nChar = pBuff[indx];
if ( ( ( nChar >= 'A' ) && ( nChar <= 'Z' ) ) ||
( ( nChar >= 'a' ) && ( nChar <= 'z' ) ) ||
( ( nChar >= 33 ) && ( nChar <= 47 ) ) ||
( ( nChar >= 58 ) && ( nChar <= 64 ) )||
( ( nChar >= 91 ) && ( nChar <= 96 ) )||
( ( nChar >= 123 ) && ( nChar <= 126 ) ))
{
MessageBox();
}
else
{
bProblem = true;
break;
}
}
str.ReleaseBuffer();
}
|
|
|
|
|
Thanks for sharing. It would probably work same if you check just for < numbers > range.
Vaclav
|
|
|
|
|
Yes Indeed, but in that case it will block some keys also (e:g: Del, space, etc ...).
I want to block only characters and special characters.
Regards,
Mbatra
|
|
|
|
|
If using DoDataExchange and DDX_Text , then you also have access to DDV_MinMaxInt (And other DDV friends[^])
|
|
|
|
|
hi every one, i'm trying to write a simple code in clips but I'm getting this error which i can't find what the problem is.
I would be grateful if any one could help.
Defining deffunction: user-Question
Defining defrule: Rule0
[PRNTUTIL2] Syntax Error: Check appropriate syntax for defrule.
ERROR:
(defrule MAIN::Rule0
(not (tank-is-full ?)
=>
this is part of my code:
<blockquote class="FQ"><div class="FQA">Quote:</div>;;;************
;;;* Functions*
;;;************
(deffunction user-Question(?question ?answer $?values)
(printout t ?question)
(bind ?answer(read))
(stringp ?answer)
=>
(bind ?answer(lowcase ?answer))
(while (not (member$ ?answer ?values)) do
(printout t ?question)
(bind ?answer(read))
(stringp ?answer)
=>
(bind ?answer(lowcase ?answer))
)
?answer
)
;;;**********************
;;;* ENGINE STATE RULES *
;;;**********************
(defrule Rule0
(not (tank-is-full ?)
=>
(bind ?tank-is-full user-Question("Is there any petrol in the tank(Yes|No)?"yes YES Yes NO no No)
(assert(tank-is-full ?tank-is-full)
)
;;;****************************
</blockquote>
|
|
|
|
|
I am certainly not an expert but I am quite sure that the code that you posted is not C, C++ or MFC. At least it is no variant of C, C++ or MFC that I recognize. You sure you are in the right forum?
|
|
|
|
|
I'm not sure where should I post this but it's part of the code in Clips (C Language Integrated Production System ) environment which is software tool for building expert systems.
please let me know where should I post it?
|
|
|
|
|
I already gave you a link to the Clips page. You need to try there, as that is where you will find other people who understand that system.
Use the best guess
|
|
|
|
|
thanks,I have used that link but I think may be I could find my answer here.
thanks i'll try once more
|
|
|
|
|
a.fatemeh wrote: please let me know where should I post it
If it were me looking to know about someone else's language or IDE, I would go to the source and ask them. For CLIPS, I would go here[^]
|
|
|
|
|
You've been told that this forum isn't suitable, yet have decided to post here again. No matter how may times you post CLIPS != c || c++, the c=part denotes it can be integrated with c-based systems. Additionally CLIPS is relatively specialised, rule based programming is different to the way c operates.
All this adds up to one thing: the advice I have seen here so far is spot-on: don't post this here as this isn't the correct forum and few people here will have an interest in CLIPS, your chances will be vastly improved by posting on a specialised CLIPS forum where everyone is there as they know about/are interested in it.
The defrule for Rule0 has an unbalanced number of brackets BTW my guess is there is one missing at the end of the "not" line, and the ? after tank-is-full looks suspicious. Of course I know next to nothing about CLIPS, which is why going to a CLIPS forum would be so handy.
“Education is not the piling on of learning, information, data, facts, skills, or abilities - that's training or instruction - but is rather making visible what is hidden as a seed” “One of the greatest problems of our time is that many are schooled but few are educated”
Sir Thomas More (1478 – 1535)
|
|
|
|
|
yeah, I do that but I didn't get any answer so I post here.
yours help a lot because every time I check every thing else rather than brackets. I didn't pay attention to that at all, it was just frustrating to check sth again and again and don't know what to do.
my problems solved, THX
|
|
|
|
|
A couple of weeks ago, I got this nasty rash on my mouse clicking finger. I posted a question to a medical site but nobody answered. I figured that since I was writing a C++ program when it started to hurt that I would repost my question here.
Need fix urgentzzz pleez reply asap thx.
--
Harvey
|
|
|
|
|
hello everybody :
i want to ask i recently downloaded a C++ source code , i just want to make program executable ( i mean make it binaries)like linux ,
is there any free program that do and make the setup file .
please help.
Thanks anyway .
|
|
|
|
|
Visual Studio Express 2010 will do that.
|
|
|
|
|
HOW???? i mean i downloaded a full source code of program ,
if you know how to do it ,tell me or give me such a link or e-book that could explain the procedure it detail,
thank anyway
|
|
|
|
|
You got your answer.
If you do not understand this simple piece of information. You will have a difficult time.
"It's true that hard work never killed anyone. But I figure, why take the chance." - Ronald Reagan
That's what machines are for.
Got a problem?
Sleep on it.
|
|
|
|