|
OK thanks a lot for your Help
|
|
|
|
|
Execuse me sir;
I try the same for a button, it don't work :
HBRUSH hbr = COleDBRecordView::OnCtlColor(pDC, pWnd, nCtlColor);
static CBrush MyBrush;
if( !MyBrush.m_hObject )
{
MyBrush.CreateSolidBrush( RGB(188,143,143));
}
if( nCtlColor == CTLCOLOR_STATIC)
{
// seulement pour le static que tu veux modifier
pDC->SetTextColor (RGB(128,0,0)); // texte rouge fonce
pDC->SetBkColor (RGB(188,143,143)); // CTLCOLOR_BTN
return MyBrush;
} ;
if( nCtlColor == CTLCOLOR_DLG)
{
return MyBrush;
}
if( nCtlColor == CTLCOLOR_BTN)
{
return MyBrush;
}
return hbr;
|
|
|
|
|
mikobi wrote: I try the same for a button, it don't work :
for button it will not work. If u want to change the color of the button, u have to Draw it by ur self. This can be done by giving(BS_OWNERDRAW) style to the button. U can find enough articles explaining this. Try googling Owner Draw Button.
nave
|
|
|
|
|
Supposing I declare a char array like
char p[20] = {"Hello"} ;
Where will this array of chars get created? In the Heap or the Stack? When the function where this array is declared goes out of scope, will the char array be automatically deleted or will I have to explicitly delete it?
---
Hakuna-Matada
It means no worries for the rest of your days...
It's our problem free, Philosophy
<marquee behavior="alternate" scrollamount="5" scrolldelay="50">
|
|
|
|
|
it is created in the stack and it will be deleted automatically
never say die
|
|
|
|
|
Everything is allocated on stack unless you explicitly allocate with new , malloc , realloc ...
|
|
|
|
|
or if its global
|
|
|
|
|
When I try to use setdlgitemtext to place some text into the EDIT box,
it will cause the flickering problem. Is there any method to solve it?
Please help! Many thanks!
|
|
|
|
|
You could try SetRedraw(false), update your control's text, then SetRedraw(true), then Invalidate the control. Not sure if it has any affect on edit controls, but works for tree and list controls.
- S
50 cups of coffee and you know it's on!
|
|
|
|
|
Thank you very much!
But it is still the same!
|
|
|
|
|
From which funtion do u call SetDlgItemText()?
I think the flicker is coming because u call that funtion frequently?
nave
|
|
|
|
|
The function is called by pressing a button.
So it should not happened frequently.
|
|
|
|
|
can u show me the code inside that function?
nave
|
|
|
|
|
The coding are
function()
{
display=DEPARTMENT;
count=temp;
itoa(count,num_tmp,10);
display+=num_tmp;
SetDlgItemText(IDC_EDIT2,display);
}
HBRUSH CQcountDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes of the DC here
switch (nCtlColor)
{
case CTLCOLOR_STATIC: switch (pWnd->GetDlgCtrlID())
{
case IDC_EDIT2: pDC->SetTextColor(_TEXTCOLOR);
pDC->SetBkColor(_TEXTBKGCOLOR);
hbr=_NumBkgBrush;
break;
default: pDC->SetBkColor(_BkgColor);
hbr = _BkgBrush;
}
break;
default: pDC->SetBkColor(_BkgColor);
hbr = _BkgBrush;
}
// TODO: Return a different brush if the default is not desired
return hbr;
}
|
|
|
|
|
I found nothing wrong with this code. But just try commenting the ON_WM_CTLCOLOR() in the message map. Have u mapped any other painting messages like this?
nave
|
|
|
|
|
There are no other such mapping!
|
|
|
|
|
Maybe it's flickering because the text is selected? Could try SetSel(0, 0) and then set your text.
- S
50 cups of coffee and you know it's on!
|
|
|
|
|
Thank you very much!
But still the same!
|
|
|
|
|
After further thought, the standard edit box is not double buffered, so it erases the background and then draws the text, so I think that's why it's flickering. I'm not sure how to fix it.
- S
50 cups of coffee and you know it's on!
|
|
|
|
|
Anyway! Thank you very much!
|
|
|
|
|
i want to add some functionality to maximize minimize button of a dialog or form view. how can i do this?
|
|
|
|
|
uetiean wrote:
functionality to maximize minimize button of a dialog
Override WM_SIZE
In the OnSize function
if(nType==SIZE_MINIMIZED)
if(nType==SIZE_MAXIMIZED )
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
|
Overide
WM_NCLBUTTONDOWN()<br />
<br />
void OnNcLButtonDown( UINT nHitTest, CPoint point )<br />
{<br />
if( nHitTest == HTMINBUTTON )<br />
{<br />
AfxMessageBox( "MinButton" );<br />
}<br />
if( nHitTest == HTMAXBUTTON )<br />
{<br />
AfxMessageBox( "MaxButton" );<br />
}<br />
CDialog::OnNcLButtonDown( nHitTest, point );<br />
}
|
|
|
|
|
CWnd::GetTextExtent() or CWnd::GetOutputTextExtent() does not return the correct width of the text in asian languages OS on Windows 2K. The same works as expected on Windows XP.
I have seen this with GetWindowText() also. Does anyone know or seen this issue. What is the reliable way to correct this.
Best Regards, Madhu.
|
|
|
|