|
Hi all,
I previously used Windows Forms so i'm experiencing some
difficulties with MFC.
I created a combo box, i wrote
a;b;c;d; in the Data field
but when i launch the application and
click on the right side of the combobox
nothing happens ? Why ?
Thanx in advance,
Desmo16.
|
|
|
|
|
have you extended the Popup rectangle?
it will able to do it, when click on the drop-down button of the combox box when at resource editor.
SaRath.
"It is your attitude, not your aptitude, that determines your altitude - Zig Ziglar."
My Blog | Understanding State Pattern in C++
|
|
|
|
|
sorry but i didn't understand what you said.
I simply put a combobox from the toolbar onto the form
and wrote a;b;c;d; on the data property of the combo box ?
Is there any code to write or other actions to do ?
|
|
|
|
|
Desmo16 wrote: but when i launch the application and
click on the right side of the combobox
nothing happens ? Why ?
Your question is somewhat ambiguous. Is the combobox not dropping down? Is it disabled?
When creating a CComboBox control you should set the style to:
WS_CHILD | WS_VISIBLE | WS_TABSTOP
also add to the style:
CBS_DROPDOWN or CBS_DROPDOWNLIST
The MSDN help docs topic on CComboBox::Create() links to a list of all combo box styles.
A CodeProject ComboBox Article[^]
Mark
|
|
|
|
|
it's everything ok now, thanx.
i just wasn't able to expand vertically the combo box in design view.
|
|
|
|
|
Is there an easy way to send CString data to a RichEditView?
I tried using Visual C++ 6.0 to create an SDI app and then dumped older code where I assigned text to a Arrary of CStrings in the view class using the pDoc pointer and then calling Invalidate() to invoke the OnDraw() function to perform the pDC->TextOut() function. Is there something similar for the RichEditView? In my attempt to copy and paste code I was unable to get into the CRichEditView::OnDraw() function.
new user
-- modified at 11:02 Wednesday 28th June, 2006
|
|
|
|
|
|
First call GetRichEditCtrl() to get a reference (not a pointer) to the view's edit control, then call SetWindowText() , like:
CRichEditCtrl &edit = GetRichEditCtrl();
edit.SetWindowText("Hello");
"The largest fire starts but with the smallest spark." - David Crow
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
I must have posted at the same time as you did.
|
|
|
|
|
|
The following obtains a pointer to the view's control the outputs a string to the current caret position. For example:
void MyRichEdView::WriteString(CString sStr)
{
CRichEditCtrl & rich = GetRichEditCtrl();
rich.ReplaceSel(sStr);
}
Mark
|
|
|
|
|
Hello,
I am developing an application which must acquire films with the V700 scanner using TWAIN; i have problems defining the scan area; with the older Expression 1680pro I have no problems at all. Has anyone experience with this scanner? Help is VERY appreciated...
Regards, Fulvio
|
|
|
|
|
I am using C++ Builder Pro to create a database program. I have a DBCtrlGrid which views several records at one time. On this grid I have various text boxes with the data from the database records displayed. I would like to write a statement where if a paticular value is > 10 the text would change to red for that specific record textbox(123Txt). when I try to do this now it changes all the viewed records text in the textbox(123Txt) to red. Is it possible to change just one panels txt using this DBCtrlGrid? Any thoughts would be great.
Debs
|
|
|
|
|
I need to take a float or double value nand determine how many numbers it has before and after the decimal. Examples:
123.3 -> 3 before and 1 after
.12345 -> 0 before and 5 after
123 -> 3 before and 0 after
The method has to be extremely fast because it may be executed very often in a high-volume environment. I know I can convert it to a string and search for the decimal, etc., but string functions are very slow.
Thanks!
Barry Etter
|
|
|
|
|
use CString's Format function
CString strFloat;
strFloat.Format("%f",myfloatvalue);
//Search for .
strFloat.Find();
and then use CString's Left() and Right() methods
This code is not optimized. It's just one way of doing this
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
|
Yeap buddy,
I read that , That's why I quoted that the method I propose is not optimized and there could be many other methods of achieving the same.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
Do you know how how a double or float laid in memory?
it would be easier using some mask & ing, | ing or <<ing>>ing to catch the values.
SaRath.
"It is your attitude, not your aptitude, that determines your altitude - Zig Ziglar."
My Blog | Understanding State Pattern in C++
|
|
|
|
|
He specifically said that he did not want to convert to and from strings.
--
100% natural. No superstitious additives.
|
|
|
|
|
For the number of digits before the decimal, you could use
int iNumBefore = 0;<br />
iNumBefore = 1 + (int)(log10(x));
where x is your value
As for the number of digits after, I don't have any quick ideas on that, but as you say, you could convert to a string (although you might get different results because of the precision of doubles) and then find the decimal.
Hope that helps.
Karl - WK5M
PP-ASEL-IA (N43CS)
<kmedcalf@ev1.net>
PGP Key: 0xDB02E193
PGP Key Fingerprint: 8F06 5A2E 2735 892B 821C 871A 0411 94EA DB02 E193
|
|
|
|
|
krmed wrote: As for the number of digits after, I don't have any quick ideas on that, but as you say, you could convert to a string (although you might get different results because of the precision of doubles) and then find the decimal.
<br />
int iNumAfter = 0;<br />
iNumAfter = 1 + (int)(log10(x*10));<br />
Could it works?
F.
TBEditor: a pandapowered app!
|
|
|
|
|
To find the number of digits before the floating point, you can use the log10 function. You need to round down the result and add 1.
For the number of digits after the floating point, I don't have any idea.
Cédric Moonen
Software developer
Charting control
|
|
|
|
|
Cedric Moonen wrote: For the number of digits after the floating point, I don't have any idea.
well you can do the same... just multiply the initial number by 10 ...
F.
TBEditor: a pandapowered app!
|
|
|
|
|
I think you can investigate the following approach.
For the "before" part of positive values:
float f;
long m = (long)f;
int before;
if( m == 0) before = 0;
else if( m <= 9) before = 1;
else if( m <= 99) before = 2;
else if( m <= 999) before = 3;
else ... and so on according to a maximal value.
Hope it is fast enough.
For the "after" part, you can try a similar idea, but I am afraid it will be some problems related to imprecise representation of decimal float numbers in binary format, but such issue you will see in case of string-convertion-based method too.
-- modified at 10:35 Wednesday 28th June, 2006
|
|
|
|
|