|
Thanks, you've been most helpful. I managed to do it using messages
|
|
|
|
|
Hi,
i have placed a list box in my dialog, and i want to add strings to that list box. when i try to send the message LB_ADDSTRING using the SendMessage function, its showing me an error that the handle to the control is invalid. How do u get the handle to a control in the dialogbox, if the control id is know, as well as the dialog id.
Can anyone help me. I'm doing the program in SDK.
Vini
|
|
|
|
|
Hi,
there are at least 2 ways to solve your problem:
Assume
o hWndDialog is the Window-handle of your dialog
o IDC_LISTBOX is the Id of the ListBox
o pszStringToAdd is a pointer to the string you want to add
1) You could use GetDlgItem() like this
HWND hWndListBox = GetDlgItem(hWndDialog,IDC_LISTBOX);
if(hWndListBox)
{
// Found the Window-handle of the ListBox
SendMessage(hWndListBox,LB_ADDSTRING,0,(LPARAM)pszStringToAdd);
}
else
{
// Didn't found the Window-handle of the ListBox. Deal with the Error
...
}
2) alternatively, you could use SendDlgItemMessage() like this:
SendDlgItemMessage(hWndDialog,IDC_LISTBOX,LB_ADDSTRING,0,(LPARAM)pszStringToAdd);
HTH
Cheers,
Pierre Heler-Caruel
|
|
|
|
|
Guess I should have previewed my last message, the #includes did not come through and the desired format is not as I typed it. Guess this is just the way things are going today
Beginning Student Programmer
|
|
|
|
|
Edit your post and check the "Display this message as-is" checkbox. You might also check out the VC forum FAQ (link at the top of this page), which answers this question and many others.
--Mike--
My really out-of-date homepage
Buffy's on. Gotta go, bye!
Sonork - 100.10414 AcidHelm
Big fan of Alyson Hannigan.
|
|
|
|
|
I am having trouble using setprecision(), setw(), fixed, right, left,..etc... funtions for formatting output.
I want to have a number on top of another number on top of the answer all inline with eachother on the right regardless of the length of each number.
Example of desired output:
234
x 678
------
158652
However, this is what I am getting:
234
x 678
------
158652
with this code:
#include<stdio.h>
#include<iostream>
#include<iomanip.h>
void main()
{
int a, b;
int Answer = 0;
cout << "\nEnter a three digit integer: ";
cin >> a;
cout << "Enter a second three digit integer: ";
cin >> b;
Answer = a * b;
cout << setiosflags(ios::right) << a << endl;
cout << setiosflags(ios::right) << "x " << b << endl;
cout << setiosflags(ios::right) << "------\n";
cout << setiosflags(ios::right) << Answer << endl;
}
This code seems inefficient and is not giving good results. I would be greatful for any suggestions anyone may have.
Beginning Student Programmer
|
|
|
|
|
Performancewise, is it better to pass by reference or pass by pointer if applicable?
Thanks,
Kuphryn
|
|
|
|
|
It makes no difference.
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
There is a difference if the function needs to change the pointer
It cant do that to a reference
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
If you don't find me on CP, I'll be at Bob's HungOut
|
|
|
|
|
True, but that's not what was asked, now was it ?
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
Hmmm. You answer only to what is asked eh?
I am reminded of a joke.
It's a phone call
A: Hello.
B: Hello.
A: Can I speak to George?
B: No
A: Huh? I want to speak to George
B: Maybe, but you cannot
A: I insist. Gimme George now.
B: I cannot
A: Why not????????
B: George is not home
A: Sh*t
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
If you don't find me on CP, I'll be at Bob's HungOut
|
|
|
|
|
If the function modifies the pointer then pass it as a pointer, because references will be treated as const pointers [or am I wrong?] if they are a reference to a stack variable.
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
If you don't find me on CP, I'll be at Bob's HungOut
|
|
|
|
|
sheesh!
I was being stupid.
Pass a pointer if the function needs to change the pointer.
It cannot change a reference variable's address
Nish
Sonork ID 100.9786 voidmain
www.busterboy.org
If you don't find me on CP, I'll be at Bob's HungOut
|
|
|
|
|
|
When passing user defined types, using references can improve performance. For builtin types it doesn't matter which way you do it.
Vimal
|
|
|
|
|
Thanks. That really reminds me of Deitel & Deitel C++ How to Program's performance tips.
Kuphryn
|
|
|
|
|
Hi,
Does anyone know if the Gdiplus::Graphics class sports a [Fill|Draw]RoundRect() function (or similar.) I know I can use a GraphicsPath object (with lines and arcs) to represent the same shape, but it seems strange that such a basic function could be omitted by the implementation?
/Andreas
|
|
|
|
|
Nope - not there.
I did it like this:
GraphicsPath* CGPaintShape::MakeRoundRect(Point topLeft, Point bottomRight, INT percentageRounded)
{
ASSERT (percentageRounded >= 0 && percentageRounded <= 100);
INT left = MIN(topLeft.X, bottomRight.X);
INT right = MAX(topLeft.X, bottomRight.X);
INT top = MIN(topLeft.Y, bottomRight.Y);
INT bottom = MAX(topLeft.Y, bottomRight.Y);
INT offsetX = (right-left)*percentageRounded/100;
INT offsetY = (bottom-top)*percentageRounded/100;
GraphicsPath * path = new GraphicsPath;
path->AddArc(right-offsetX, top, offsetX, offsetY, 270, 90);
path->AddArc(right-offsetX, bottom-offsetY, offsetX, offsetY, 0, 90);
path->AddArc(left, bottom - offsetY, offsetX, offsetY, 90, 90);
path->AddArc(left, top, offsetX, offsetY, 180, 90);
path->AddLine(left + offsetX, top, right - offsetX/2, top);
return path;
}
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
Ok, that's what I suspected anyway... I have to deal with different vectors for the ARC, but that should not present any problem. Just wan't to make sure I don't reinvent the wheel to many times
Thanks for the reply and sample
/Andreas
|
|
|
|
|
As I was skimming through a reference book tonight I ran across a description of the template class, complex. I know nothing of it, having had no prior need for it, but I'm curious about the operator:
<br />
complex& operator*=(const complex& rhs)<br />
Does the return value contain the dot (scalar) or the cross (vector) product? And if it's the cross product, which part of the return value represents the component normal to the Re/Im plane?
Can't imagine any immediate use for knowing, but who knows when the circumstance might arise...
|
|
|
|
|
|
Thanks!
As I mentioned, I don't have an immediate use for it, but one of the projects I've got in the back of my head may need the capability. It's more of a vector problem than a complex number application, but as long as we're limited to two dimensions (and the project is, fundamentally, two-dimensional) a solution using complex numbers will do nicely..
|
|
|
|
|
I want to monitor keyboard and mouse activity with a program that runs without a window and in the system tray. This program would write information to a log file as it "sees" the activity. Can anyone give me some hints on where to start looking? Some good starting points would be 1) How to monitor messages going to any application. 2) How to run a process in the system tray.
Ross
|
|
|
|
|
You'll need a system wide hook which will reside in a dll.
Christian
I have come to clean zee pooollll. - Michael Martin Dec 30, 2001
Sonork ID 100.10002:MeanManOzI live in Bob's HungOut now
|
|
|
|
|
1) SetWindowsHookEx with parameters WH_KEYBOARD, WH_KEYBOARD_LL, WH_MOUSE, WH_MOUSE_LL
2) http://www.codeproject.com/shell/systemtray.asp
|
|
|
|