CButton - kak da mu dam da e disabled?

8 отговора 229 прегледа
#1

CButton - kak da mu dam da e disabled?

Iskam da wi pitam kak da naprawq edin CButton da e disabled?
Zna4i :

1. programata na vc++.

2. butona mi e sys stil BS_PUSHBUTTON

3. wzemam ukazatel kym butona i mu wikam EnableWindow(false); i toj ne ebawa da posiwqwa.

4. probwah butona da e sys stil BS_CHECKBOX i nqma problemi, EnableWindow() si ba4ka. Oba4e kato e BS_PUSHBUTTON i ne shte.

Move li nqkoj da mi dade akyl kwo da prawq, 4e se 4udq we4e kwo da probwam ;)))

ps. Opitah i SetButtonStyle(WS_DISABLED); pak ne shte ...

юбря, чубанииииииии !
Отговор
в отговор на Zod #2

Re: CButton - kak da mu dam da e disabled?

и при VC++6, и при VC++7.NET, селектираш бутона в ресурс едитора, даваш му properties, там има опция Disabled, която по default е uncheck-ната, та правиш я chech-ната - и бутона става сив !

най-често умните хора са и лоши
Отговор
в отговор на vroom #3

Re: CButton - kak da mu dam da e disabled?

vroom...choweka iska da stane programno...na nekakyw event...
na wyrposa...az probwah i pri men wyrwi i kogato e push button i kogato e checkbox i kogato e pushlike check box...ne razbiram kakyw e problema pri teb
paste malko kod za da razberem...

-------------------------------
Koito go moje - go moje!
Отговор
в отговор на Mobile #4

Re: CButton - kak da mu dam da e disabled?

да де, по програмен път...
той си задава по начало как ще му изглежда бутона - disabled, посивен, после си вика EnableWindow, аз не виждам защо да не става, като точно днес си правех няколко бутона точно по този начин да се enable-нат на базата на флагове и к'вото там му е на човека
мисля, че има и други начини - може би с нещо от рода на pButton->ShowWindow( SW_SHOWNORMAL или(не двоично или :-))) SW_RESTORE ). не съм ги пробвал, но би трябвало да вършат работа за връщане обратно към предишното състояние...

най-често умните хора са и лоши

Редактирано от vroom на

Отговор
в отговор на Mobile #5

Re: CButton - kak da mu dam da e disabled?

/**eto malko kod:*/


CMainFrame* pFrm = (CMainFrame*) AfxGetMainWnd();
CDialogBar* pDlgBar = (CDialogBar*) pFrm->GetDlgItem(IDD_DLGBAR1);
CButton* pBtnGetInfo = (CButton*) pFrm->m_wndDlgBar1.GetDlgItem(IDC_BTN_GETINFO);

pBtnGetInfo->EnableWindow(false);

/** i ne shte. oswen towa probwah i slednoto, namesto posledniq red:*/

pBtnGetInfo->SetButtonStyle(WS_DISABLED);



Butona mi si e standarten ot palitrata za resursi. Turil sym go w edin CDialogBar i iskam kato natisna edin drug buton i da mi stawa toq pyrwiq buton disabled. Imate li nqkakwi idei, 4e moite se iz4erpaha ;)

юбря, чубанииииииии !
Отговор
в отговор на Zod #6

това със сигурност работи...

поне при мен...

значи във функцията OnBnClickedXXX на бутона, който иска да командва disable-ването на IDC_BTN_GETINFO, пишеш следното:
GetDlgItem( IDC_BTN_GETINFO )->EnableWindow( FALSE );

и т'ва е всичко

най-често умните хора са и лоши
Отговор
в отговор на Zod #7

Re: CButton - kak da mu dam da e disabled?

между false и FALSE има разлика.
Макар, че не ми се вярва да е от това...

Я вышел им наперерез!
Отговор
в отговор на Zod #8

Re: CButton - kak da mu dam da e disabled?

MFCto uslujliwo ako ne otkrie neshto zakacheno w menu ili toolbar
da prawi syotwetnata komanda disabled...
tochno pyk dialogbar ne sym prawil do sega...
ti probwa li da definirah ON_UPDATE_COMMAND_UI
za tozi buton?

Отговор
в отговор на Zod #9

eto i primeren proekt

Ami i az go namiram za mnogo stranno, no pri mene ne shte i ne shte da wyrwi. Prosto nikakwo dejstwie ne predpriema, kogato wikam EnableWindow(). move da e ot nqkoe drugo mqsto problema, za towa naprawih now proekt, samo s edin CDIalogBar i 2 butona. Buton 1 kato se natisne i bi trqbwalo buton 2 da stane disabled, kakto sym go naprawil, ama ne shte. Kojto iska move da drypne proekta i da go widi (vc++ 6.0)

[линк]

юбря, чубанииииииии !
Отговор