|
oops..I forgot to paste the following code in the function body. Here is what I am trying at the top of the provided function body in OP.
CHARFORMAT Cfm;
m_richMessages.GetSelectionCharFormat(Cfm);
Cfm.cbSize = sizeof(CHARFORMAT);
Cfm.dwMask = CFM_ITALIC;
Cfm.dwEffects ^= CFE_ITALIC;
Cfm.crTextColor = RGB(0,255,0);
m_richMessages.SetSelectionCharFormat(Cfm);
1 - Now first, this code colors the entire rich edit box. But I want to change the color of the user name only, not his/her message.
2 - To surprise you, this code italicizes the text in the rich edit control but does not change the color of it.
This world is going to explode due to international politics, SOON.
|
|
|
|
|
Well, one thing I see is that you forgot to add the CFM_COLOR flag to the mask:
Cfm.dwMask = CFM_ITALIC | CFM_COLOR;
This flag tells the function to set the color based upon the crTextColor member of the structure.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Thanks but how do I select UserName and change its color? Thanks for any input on this.
This world is going to explode due to international politics, SOON.
|
|
|
|
|
When you're setting the text of the User Name and message, you must keep track of what character positions represent the user name, and then use the EM_EXSETSEL message to select those characters.
Once those characters are selected, then you can use the code you have shown in order to set the formatting.
The difficult we do right away...
...the impossible takes slightly longer.
|
|
|
|
|
Simple, Take the Name in CString or TCHAR Array, In OnPaint, or OnDraw Change the Text Color...
|
|
|
|
|
COLORREF crTextColor;
I would assume this field used with the EM_SETCHARFORMAT [^] message; a quick test should confirm it.
Programming is work, it isn't finger painting. Luc Pattyn
|
|
|
|
|
hi,
i have developed a GUI in MFC vs2008. now i wanted to get GPS coordinates of different locations using offline map. the idea is to have a map in my GUI dialog, and by clicking on specific area inside the map would assign the coordinates of that area to specific variable in my GUI code.
now the problem is how to do it? where to start? and if i wanted to use Falcon-view or offline Google map, than what would i need to do?
Regards
Jawad
modified 23-May-12 6:18am.
|
|
|
|
|
jawadali477 wrote: where to start?
Looking at some of these links[^] is as good a place as any.
Programming is work, it isn't finger painting. Luc Pattyn
|
|
|
|
|
I am trying to write a virtual chat system, in which you can ask the computer any question you want, and then it will give out the correct answer. My only problem is getting the code to loop back to the start, thus allowing the user to input another question, continuously getting the answer, until the user specifies to stop.
#include <iostream>
#include <string>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <tchar.h>
using namespace std;
int Australia();
int main()
{
cout << "Welcome to Virtual Chat, ask any question you want.\n";
int Keep = 1;
string Input;
while (Keep == 1)
{
cin >> Input;
if (Input == "What is your name?" || "what is your name?" || "What is your name");
{
cout << "I am a computer, I do not have a Name";
break;
}
continue;
}
char f;
cin >> f;
return 0;
}
Thankyou for the help.
|
|
|
|
|
It looks your code is already doing it: the while loop accepts user input again and again.
Am I missing something?
Veni, vidi, vici.
|
|
|
|
|
Not really, at the moment it only accepts one input then stops.
|
|
|
|
|
Ah, OK. That is because the if condition is wrong, it should be
if (Input.compare("What is your name?")==0 || Input.compare("what is your name?")==0 || Input.compare("What is your name")==0)
note there is no trailing semicolon ( ';' ).
Veni, vidi, vici.
|
|
|
|
|
But how do i get the output from the console.
Here is the code:
#include <iostream>
#include <string>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <tchar.h>
using namespace std;
int Australia();
int main()
{
cout << "Welcome to Virtual Chat, ask any question you want.\n";
int Keep = 1;
string Input;
while (Keep == 1)
{
cin >> Input;
if (Input.compare("What is your name?")==0 || Input.compare("what is your name?")==0 || Input.compare("What is your name")==0)
{
cout << "I am a computer, I do not have a Name";
break;
}
continue;
}
char f;
cin >> f;
return 0;
}
|
|
|
|
|
Change from
Dasttann777 wrote: cin >> Input; to
getline(cin, Input);
Veni, vidi, vici.
|
|
|
|
|
Really sorry for the nagging, but the loop now no longer works.
#include <iostream>
#include <string>
#include <stdlib.h>
#include <windows.h>
#include <conio.h>
#include <tchar.h>
using namespace std;
int Australia();
int main()
{
cout << "Welcome to Virtual Chat, ask any question you want.\n";
int Keep = 1;
string Input;
while (Keep == 1)
{
getline(cin, Input);
if (Input.compare("What is your name?")==0 || Input.compare("what is your name?")==0 || Input.compare("What is your name")==0)
{
cout << "I am a computer, I do not have a Name";
break;
}
continue;
}
char f;
cin >> f;
return 0;
}
|
|
|
|
|
Do you mean the break statement is working (remove it if exiting the loop after the cout << "I am .."; is not the intended behaviour)?
Veni, vidi, vici.
|
|
|
|
|
I feel like such an idiot, thankyou for pointing that out.
|
|
|
|
|
You are just learning.
Veni, vidi, vici.
|
|
|
|
|
One more time – capAVI question for a real capAVI gurus.
I have two, so far – I'll need more, MFC views with capPreview enabled.
Using
lResult = ::SendMessage (hWndC, WM_CAP_SET_PREVIEW,true,0L);
if(!lResult)
{
TRACE("\nFailed ");
}
The views are working – displaying the camera capture – but only when only one of them is activated.
When I try switching between two MFC windows only the one activated first actually displays the preview.
I am using Wnd class to initialize the preview and have no failures doing that for both views.
I do not quite get how the preview is actually putting the data into the capture window, been unable to debug / trace it thru.
Any reasonable help will be as always appreciated.
Thanks Vaclav
|
|
|
|
|
Here is an update.
I have implemented callback on error and received this error when the second view is activated
...no frames detected... check and make sure vertical synch is enabled...
So, why do I get this error on the second view only?
I am not sure where to fix it , some sources say to lower the capture dimensions and or fix it in the video hardware.
I''ll try different driver next.
|
|
|
|
|
The problem was / is that two implementations of the capDriverConnect happily connect, even when the driver is in use elsewhere.
Each view must diconnect the driver first, however, things are little more complicated since the view is in the tab and tabs only move the tabs up / down, I guess in z axis, and the preview stops, but that is all.
|
|
|
|
|
Hello everybody,
is it possible to determine the orientation of the selection into a CEdit?
If I select a part of the text with the mouse from left to right, the cursor blinks at the end.
But if I select the text from right to left, the cursor blinks at the beginning of the selection.
A GetSel(...); returns always the start and end index in the left-to-right order.
Or is there a function to retrieve the blinking cursor in a selection?
Big thanks in advance
|
|
|
|
|
Don't know if there's an "official" way of doing that, but you could try experimenting with GetCaretPos[^] and CharFromPos[^].
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> If it doesn't matter, it's antimatter.<
|
|
|
|
|
Exactly what I'm looking for.
Big thanks
|
|
|
|
|
Yourwelcome.
> The problem with computers is that they do what you tell them to do and not what you want them to do. <
> If it doesn't matter, it's antimatter.<
|
|
|
|