|
hi,
I've added a set of strings(from Database) to my combo box using
membervariable.AddString(CString)
Now,How can i add a set of integers to my combo box.
Can any one tell mi a solution for this...with a clear example(as i'm a beginner).
if so please tell me how to add the floats to the same..
thank you in advance..........
|
|
|
|
|
You can convert your numeric types to strings...
int i = 42;
CString str;
str.Format(_T("%d"), i);
m_combobox.AddString(str);
double d = 1.23456;
CString str;
str.Format(_T("%.3f"), d);
m_combobox.AddString(str);
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
hai mark,
even i wanted to suggest the same,but before hitting reply, i saw your name ,got diverted towards your post, and dropped my idea.
your post is more descriptive.
Mark Salsbery wrote: str.Format(_T("%d"), i);
can you please explain me why you have used _T there.
thank you.
Suggestion to the members:
prefix your main thread subject with [SOLVED] if it is solved.
chandu.
|
|
|
|
|
chandu004 wrote: can you please explain me why you have used _T there.
I use the generic text mappings everywhere.
In this case, I'm using a CString, which is a generic type
(unlike CStringA and CStringW).
CString::Format() takes a PCXSTR as its first argument so I
use _T() to get that type.
This will compile on both Unicode and non-Unicode builds...
that's the whole idea
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
|
thanks mark.
i feel that, observing your posts one day is equalent to reading one book per day.
Suggestion to the members:
prefix your main thread subject with [SOLVED] if it is solved.
chandu.
|
|
|
|
|
Of course sometime forums are better than books like this forum.
|
|
|
|
|
I hope this is the correct forum, I use Borland's TMemo textpad and want to know the character position of my mouse cursor, so in MouseMove I do the following:
// X and Y are in client space
void __fastcall MyApp::Memo1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
TPoint mousePos;
mousePos.x = X;
mousePos.y = Y;
int charPos = SendMessage(Memo1->Handle, EM_CHARFROMPOS, 0, (LPARAM)&mousePos);
}
The problem is charPos is always -1, even when I move the mouse over text in the Memo. Any ides whats wrong?
|
|
|
|
|
I'm guessing your cursor coordinates passed to MyApp::Memo1MouseMove()
are in screen coordinates but the EM_CHARFROMPOS message expects coords
relative to the client area of the edit control.
What happens if you do this...
void __fastcall MyApp::Memo1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
TPoint mousePos;
mousePos.x = X;
mousePos.y = Y;
<font color="Red">ScreenToClient(</font>Memo1->Handle, &mousePos<font color="Red">);</font>
int charPos = SendMessage(Memo1->Handle, EM_CHARFROMPOS, 0, (LPARAM)&mousePos);
}
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
nope, the X and Y I get are in client coordinates. Yet I tried ScreenToClient just for fun, with no luck though.
|
|
|
|
|
Hmm... It was worth a shot.
I don't remember TMemo - is it really a windows edit control or
rich edit control? If not, the message may not work (unless the
window is designed to handle the message the same as the Windows
common controls does).
Otherwise, the only reason -1 should be returned is if the cursor
is not in the client area of the control.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
It is an edit control. Maybe that is the problem then? That would be bad, I have based all my code on this control...
The cursor is inside the client, I get correct mouse positions...
|
|
|
|
|
Try this:
// X and Y are in client space
void __fastcall MyApp::Memo1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)
{
int charPos = SendMessage(Memo1->Handle, EM_CHARFROMPOS, 0, MAKELPARAM((WORD)x,(WORD)y));
}
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Yes! That worked, thanks a lot!
I had actually read somewhere that there was a bug in MAKELPARAM that would sometimes throw an exception but it seems to work fine for me, thanks again.
|
|
|
|
|
LejonO wrote: I had actually read somewhere that there was a bug in MAKELPARAM that would sometimes throw an exception
I don't think that's possible - it's just a macro that does some bitwise
operations on the arguments
Cheers,
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
hai all,
can anybody suggest me some api, using which, we can automate MS word?
i should be able to create a word file,
write some data to it,
insert images and grids to it.
is it possible?
suggestions please.
Suggestion to the members:
prefix your main thread subject with [SOLVED] if it is solved.
chandu.
|
|
|
|
|
chandu004 wrote: can anybody suggest me some api, using which, we can automate MS word?
Yes the Word Object Model. You can find the documentation on the MSDN site. Realize that today there will likely be more documentation for .NET development than for native C++.
|
|
|
|
|
Hello Friends,
I want my application to run in the background. And it displays only when some cliked in taskbar icon.
But I am not getting where to put the ShowWindow(hWnd,SW_HIDE); to hide the window.so that it doesn't appeare when It is loaded at startup.(I have set the registry, so that it runs at startup).
I have tryed to put it in following places but getting errors.
case WM_INITDIALOG:
{
//If I use the ShowWindow in the begining of the WM_INITDIALOG.
//I am geeting 02 as Error Code. Which Means "The system cannot find the file specified. "
if( ! ShowWindow(hWndDlg,SW_HIDE) ) //Hide the main window
dError = GetLastError();
...
...
//If I use the ShowWindow at the End of the WM_INITDIALOG.
//I am geeting 170 as Error Code. Which Means "The requested resource is in use."
if( ! ShowWindow(hWndDlg,SW_HIDE) ) //Hide the main window
dError = GetLastError();
}
|
|
|
|
|
Why you dont set your program to minimize when its running?
|
|
|
|
|
GauranG33 wrote: .(I have set the registry, so that it runs at startup).
can you please guide me how you have achieved this.
this is great because, i have been trying this since a couple of months but in vain.
and to your question, i have temporary solution.
1.set the dialog properties in such a way that, it does not have any border.
so that, it will be always running in the background, and gets displayed only if the user clicks the icon in the taskbar.
2.if you know, how to track the GetFocus and Lost Focus events, then, i can suggest a better solution.
gud luck.
Suggestion to the members:
prefix your main thread subject with [SOLVED] if it is solved.
chandu.
|
|
|
|
|
|
Why not just create the main window without the WS_VISIBLE flag
so you don't have to worry about hiding it?
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
If this solution is taken... The controls can not be used while the window is invisible, but if you use other things as triggers (for example a timer) then the code will be called anyways.
Am I right?
But if you make the WS_VISIBLE away, and in some conditions need the window another time... can you make it visible with the ShowWindow (TRUE) ??? Or won't be posible because the property has not been set?
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
|
|
|
|
|
It just creates the window hidden. It won't get any messages
from user like mouse messages because it's not visible. It will still
get messages from timers or messages you send to it.
It's just hidden...ShowWindow(SW_SHOW) will make it visible.
Hidden windows are common. The CSocketWnd used by the
CAsyncSocket class is an example of a hidden window.
Mark
Mark Salsbery
Microsoft MVP - Visual C++
|
|
|
|
|
Ok, thank you.
Greetings.
--------
M.D.V.
If something has a solution... Why do we have to worry about?. If it has no solution... For what reason do we have to worry about?
Help me to understand what I'm saying, and I'll explain it better to you
|
|
|
|