MFC návrh Ribbonu – C / C++ – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

MFC návrh Ribbonu – C / C++ – Fórum – Programujte.comMFC návrh Ribbonu – C / C++ – Fórum – Programujte.com

 

klinki0
Návštěvník
4. 5. 2009   #1
-
0
-

Zdravím, mám problém s návrhem ribbonu. Stále se mi nedaří přidat si do nového panelu tlačítko s ikonkou :( Tlačítko se tam přidá, zobrazí se text, ale nezobrazí se ikona (tudíž jediná známka o tom, že tam tlačítko je je ten text)

tady přidávám kus kódu:



// Add "Pasive" category
bNameValid = strTemp.LoadString(IDS_RIBBON_PASIVE);
ASSERT(bNameValid);
CMFCRibbonCategory* pCategoryPasive = m_wndRibbonBar.AddCategory(strTemp, NULL, NULL);

bNameValid = strTemp.LoadString(IDS_RIBBON_PASIVE);
ASSERT(bNameValid);
CMFCRibbonPanel* pPanelRezistor = pCategoryPasive->AddPanel(strTemp, m_PanelImages.ExtractIcon(27));

bNameValid = strTemp.LoadString(IDS_RIBBON_REZISTOR);
ASSERT(bNameValid);
HICON hIcon = LoadIcon(AfxGetInstanceHandle(), L"SinusDoc.ico");
CMFCRibbonButton* pBtnAddRezistor = new CMFCRibbonButton(ID_ADD_REZISTOR, strTemp,hIcon);
pPanelRezistor->Add(pBtnAddRezistor);
pPanelRezistor->AssertValid();


Je to dělané v MFC ve visual studiu 2008 professional.

Nahlásit jako SPAM
IP: 85.13.98.–
Jura
~ Anonymní uživatel
637 příspěvků
4. 5. 2009   #2
-
0
-

Zdravím,

zkoušet to nemůžu, protože nemám MFC Ribbon, nicméně vrací ti LaodIcon platný handle na ikonu?

Nahlásit jako SPAM
IP: 85.207.192.–
klinki0
Návštěvník
4. 5. 2009   #3
-
0
-

Hmm koukám že mi ta funkce vrací kód 1813 -
1813 (0x715)
The specified resource type cannot be found in the image file." tomu nerozumím :/ potřebné soubory tam samozřejmě má tak proč to nechce najít :(

Nahlásit jako SPAM
IP: 85.13.98.–
Jura
~ Anonymní uživatel
637 příspěvků
5. 5. 2009   #4
-
0
-

Teď se tak dívám, co to vůbec předáváš v tom druhém argumentu? Tam má být indetifikátor ikony v resource, ne cesta a jméno ikony. Čili tu ikonu nejprve přidej do resource svého projektu a pak jednoduše použij:



HICON hIcon = ::LoadIcon(::AfxGetInstance(), MAKEINTRESOURCE(IDI_TVE_IKONY));
// nebo lepe, kdyz uz to je MFC
HICON hIcon = ::AfxGetApp()->LoadIcon(IDI_TVE_IKONY);
ASSERT( hIcon );
if( hIcon )
{
// bla bla
}
else {
// zpracuj chybu
}

Nahlásit jako SPAM
IP: 85.207.192.–
klinki0
Návštěvník
5. 5. 2009   #5
-
0
-

Díky moc už to funguje :) Já sem čerpal z http://msdn.microsoft.com/en-us/library/ms648072(VS.85).aspx
a tam je

HICON LoadIcon(
HINSTANCE hInstance,
LPCTSTR lpIconName
);

lpIconName - Pointer to a null-terminated string that contains the name of the icon resource to be loaded.

Nahlásit jako SPAM
IP: 193.179.248.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 141 hostů

Podobná vlákna

MFC — založil Peter D.

Kniznica MFC — založil Marek

Pomoc s MFC — založil kwit

MFC controls — založil Hunty

MFC - share DLL — založil Pawl

Moderátoři diskuze

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý