|
CWnd::SendDlgItemMessage,
i have no idia if you give example, it is very helpful to me.
|
|
|
|
|
Inside a method of your window class (the parent window of your buttons) call, for instance:
SendDlgItemMessage(5000, WM_SETTEXT, 0 , (LPARAM) _T("BUTTON 0"));
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
no i am not getting, please is there any sample code.
|
|
|
|
|
If you post your (relevant) code may be I can tell you how to modify it.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
ON_COMMAND_RANGE(5000,5100,OnButtonRange)
void CTest::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
CButton* m_btDynamic;
CString csText;
int k=0;
for(int i=0;i<5;i++)
{
m_btDynamic = new CButton();
csText.Format(L"Button %d",i+1);
m_btDynamic->Create(csText, BS_FLAT|WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON|BS_ICON,
CRect(10+k ,10+k,60+k,60+k),this, 5000+i);
k=k+30;
}
}
void CTest::OnButtonRange(UINT nIDforControl)
{
int iSelectedControlID;
iSelectedControlID = nIDforControl;
// here i want button caption
}
Where i should use SendDlgItemMessage()
|
|
|
|
|
Well, you already set the caption for you button with known values, so what's your need now?
BTW I suggest you to maintain the CButton pointers in a member variable:
in class declaration:
CButton * m_btDynamic[5];
then, in you function you may do
void CTest::OnShowWindow(BOOL bShow, UINT nStatus)
{
CDialog::OnShowWindow(bShow, nStatus);
CString csText;
int k=0;
for(int i=0;i<5;i++)
{
m_btDynamic[i] = new CButton();
csText.Format(L"Button %d",i+1);
m_btDynamic[i]->Create(csText,BS_FLAT|WS_VISIBLE|WS_CHILD|BS_PUSHBUTTON|BS_ICON,
CRect(10+k ,10+k,60+k,60+k),this, 5000+i);
k=k+30;
}
}
so that whenever you need to access the caption of, say, third button, you may call
m_btDynamic[2]->GetWindowText();
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
thanks CPallini,
this is not exact code i have posted.
in my actual code i have created 100 buttons, same way as u told. but the problem is if user right click on any button i want that caption.
|
|
|
|
|
You may do this way (in your event handler):
CButton * pClickedButton = (CButton *) GetDlgItem( id );
CString sClickedCaption = pClickedButton->GetWindowText();
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
modified on Friday, March 26, 2010 10:26 AM
|
|
|
|
|
i am getting error
error C2039: 'GetText' : is not a member of 'CButton'
|
|
|
|
|
Sorry, I should have fixed it now.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
It's GetWindowText, not GetText.
But if you look at the documentation for CWnd on msdn, you can see the details for yourself too.
Good luck!
Iain.
I have now moved to Sweden for love (awwww).
|
|
|
|
|
|
Who do you think you are, God?
(I was worried that you missed a certain poster's rants.)
|
|
|
|
|
To your knees! (to hear the softly spoken magic spells)
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Hi I'm making a simple drawing program I used offset to set up a specific drawing.
The picture drawn with offset moves on the screen when i draw another picture everything drawn with this function moves by one pixel permanently on the screen. Cant find source of this problem.
It is an MFC aplication.
CS2::CS2(CPoint Start, CPoint End, COLORREF aColor)
{
m_PunktP = Start;
m_PunktD = End;
m_Color = aColor;
m_Pen = 1;
m_EnclRect = CRect(Start, End);
m_EnclRect.NormalizeRect();
}
CS2::~CS2(void)
{
}
void CS2::Draw(CDC* pDC)
{
CPen aPen;
POINT pt;
if(!aPen.CreatePen(PS_SOLID, m_Pen, m_Color))
{
AfxMessageBox(_T("Pen creation failed"), MB_OK);
AfxAbort();
}
CPen* pOldPen = pDC->SelectObject(&aPen);
pDC->MoveTo(m_PunktP);
pt.x = 0;
pt.y = 63;
m_PunktP.Offset(pt);
pDC->LineTo(m_PunktP);
[...]
pt.x = 0;
pt.y = -13;
m_PunktP.Offset(pt);
pDC->LineTo(m_PunktP);
pt.x = -32;
pt.y = 13;
m_PunktP.Offset(pt);
pDC->LineTo(m_PunktP);
pDC->SelectObject(pOldPen);
}
modified on Friday, March 26, 2010 9:33 AM
|
|
|
|
|
Please post code snippets using the code block button.
Could you please elaborate a bit?
(I'm not sure I got you) You're trying to draw shapes at the mouse pointer position and are you in trouble because of too many drawings take place?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
No it moves pemanently torwards lower right when I draw more pictures theyre just slipping off screen
|
|
|
|
|
That's probably because your 'offsetting' m_PunktP on every Draw call (albeit you aren't actually using a 1-pixel offset).
What do you intend to do, instead?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
I think the problem are those lines m_PunktP.Offset(pt); .
You are changing the value of this point with every call and because its a member variable this value is also changed with every call to Draw.
(I hope I understood your problem in the right way, not sure about this.)
Greetings
Covean
|
|
|
|
|
Ok thanks a lot guys I got it I was drawing with coordinates it was enough to make a drawing close with -1 coordiante if starting position was (x,y) the total ending position had to be (x-1, y-1); else it moved by the difrence.
thank again cya
|
|
|
|
|
Hello everybody,
I have a class with one member function and member variable declared in the header file.
I have compiled my code and created obj file.
When I opened the obj file I saw the decorated member function in the obj file.
But I couldn't find the member variable in the obj file.
I want to know whether compiler keep the member declared in my class in obj file or not?
Please help me.
-aji
|
|
|
|
|
Well the class member is of course there. Anyway using dumpbin I may hardly find it (I assigned a fancy bit pattern to). In fact there is no symbolic name (or I failed to grab it).
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
If it's a member function then it will not need a decorated name, as it is merely defined by the compiler as an offset into the object. When an object is instantiated the code will refer to it by its memory address, and the variable will be located by the offset value.
txtspeak is the realm of 9 year old children, not developers. Christian Graus
|
|
|
|
|
Hi,
I need to parse a file which has spaces and tabs with some entries that i need to pull.
I'm using sscanf function.
How do I ensure that I skip the spaces and tabs which could be in randon number.
What could be a regular expression for this?
|
|
|
|
|
Well, skipping blanks and tabs is very simple. You may code you own implementation for.
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|