Anonymní profil TomyB – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Anonymní profil TomyB – Programujte.comAnonymní profil TomyB – Programujte.com

 

Příspěvky odeslané z IP adresy 62.245.115.–

TomyB
C / C++ › GetCursorPos
12. 11. 2018   #382288

Mám trošku potíž se získáním POINTu z GetCursorPos.

V emulátoru, a v jednom zařízení s WCE7 to funguje správně, dostanu pozici na kterou tisknu na displeji. Ale v dalším zařízení s WCE7 mi to vrací POINT pozici v milionech, tedy naprosto mimo. Nevíte čím to může být, zda není potřeba předtím něco nadefinovat. Díky

POINT pt;
GetCursorPos(&pt);

//pt.x - běžně v rozmezí 0 - 800
//pt.x - v některých zařízeních čísla kolem 200 000 000
TomyB
C / C++ › Chybný obsah v proměnné
4. 11. 2018   #382148

#2 gna
Ještě to upřesním, ono to fungovalo do doby, než jsem začal přidávat do structu další proměnné, pokud je odeberu, tak mám výsledek zase ok. Pokud tam je ten bordel, tak mi další funkce s to proměnou nechtějí pracovat.

Připojen obrázek.

TomyB
C / C++ › Chybný obsah v proměnné
4. 11. 2018   #382146

Vytvářím struct a poté jej plním, některé proměnné ovšem jsou doplněny jakýsimi čínskými znaky. Nevíte někdo co je špatně?

Připojen obrázek.

struct Settings
{
        LPTSTR path;
        unsigned long x;
        unsigned long y;
        unsigned long width;
        unsigned long height;
        LPTSTR separator;

}

......
	m_settings.path = NULL;
	m_settings.x = 0;
	m_settings.y = 0;
	m_settings.width = 100;
	m_settings.height = 100;
	m_settings.separator = (TCHAR *)malloc(2 * sizeof(TCHAR));
	*m_settings.separator = _T(';');
......

Díky

TomyB
C / C++ › Static Control se znovu nevy…
26. 10. 2018   #382069

#4 Radek Chalupa
Vypadá to, že pod WinCE není podporováno.

Díky

TomyB
C / C++ › HEX char v řetezci
26. 10. 2018   #382068

#5 gna
Díky moc, funkční

TomyB
C / C++ › HEX char v řetezci
26. 10. 2018   #382065

#3 Panda38
Nahoď příklad. Zkouším jak můžu, výsledek je vždy ten co tam vkládám.

Níže třeba jeden z příkladů, kde si hex string převedu na dec a potom interpretuji ve sprintf, výsledek je pořád stejný "\x010d", níkoliv "č"

Dík

size_t size = wcstombs(NULL, g_Text, 0);
char* CharStr = new char[size + 1];
wcstombs( CharStr, g_Text, size + 1 );

unsigned long IntHex = strtoul(CharStr, 0, 16);

WCHAR output[6];
wsprintfW(output,L"\\x%04x",IntHex);

//output je "\x010d", nikoliv "č"
TomyB
C / C++ › HEX char v řetezci
25. 10. 2018   #382059

Ahoj, nedaří se mi zobrazit řetezec, ve kterém je hex char. Resp jen v případě, kdy proměnou naplňuji z textového souboru

příklad funkční, zobrazí se písmeno "č", tak jak požaduji

LPTSTR g_Text = L("\x10d");
pDC->DrawText(g_Text,....

příklad nefunkční, zobrazí se "\x10d", tedy nepřevede se na písmeno č

LPTSTR g_Text = section->args[i].szValue; je naplněn z txt souboru, textem "\x10d" (szValue je LPTSTR)
pDC->DrawText(g_Text,....
 

Věděl by někdo co s tím?

Díky

TomyB
C / C++ › Static Control se znovu nevy…
21. 10. 2018   #382020

Tak jsem to vyresil, tim ze do pozadi STATICu nahraji obrazek z pozadí ve WM_PAINT.
 

        RECT rect;
        RECT Crect;

        GetWindowRect(hWnd, &rect);
        GetUpdateRect(hWnd, &Crect,TRUE);


        HDC hdcMem = CreateCompatibleDC(GetDC(hWnd));
        HGDIOBJ oldBitmap = SelectObject(hdcMem, hBackground);

        BITMAP bitmap;
        GetObject(hBackground, sizeof(bitmap), &bitmap);
        BitBlt(GetDC(hWnd), 0, 0, Crect.right, Crect.bottom, hdcMem, rect.left, rect.top, SRCCOPY);

        SelectObject(hdcMem, oldBitmap);
        DeleteDC(hdcMem);

TomyB
C / C++ › Static Control se znovu nevy…
21. 10. 2018   #382018

Ještě doplním, že jsem ten WM_PAINT zprovoznil, ale tím že je to průhledné, tak se mi text i ikona znovu zobrazi, ale ponechá tam pozadí to čím jsem to překryl. Jde nějak vyresetovat ten STATIC a by si zase vzal pozadi okna pod ním?

Připojen obrázek.

TomyB
C / C++ › Static Control se znovu nevy…
21. 10. 2018   #382017

Potřebuji vykreslit průhledný Static uvnitř s textem a ikonou. Což se mi podařilo, ale při minimalizaci anebo přejetetí jiným oknem, se mi zpátky nevykreslí na původní stav. Zkousím to přes WM_PAINT, ale aplikace mi pak zamrzne. Když to celý udelám do paměti vygeneruji bitmapu, tak mám černý pozadí, není průhledný, ale zato se to zase vykresluje.  Co bych měl nastavit?

Díky

Níže výcuc kódu

hButton = CreateWindowEx(WS_EX_TRANSPARENT, L"STATIC", g_Id, WS_CHILD | WS_VISIBLE | SS_BITMAP | SS_NOTIFY, g_X, g_Y, g_Width, g_Height, hWnd, (HMENU)1, g_hInst, NULL);

RECT rect;
		PAINTSTRUCT ps;
		HDC hdc = BeginPaint(hButton, &ps);
		hdc = loadImg(hdc,g_Icon,0,0,"leftmiddle");

		GetClientRect(hButton, &rect);
		RECT rt = {rect.left + 1, rect.top + 1, rect.right - 1, rect.bottom -1 };
		SetBkMode(hdc, TRANSPARENT); //pozadi textu

		CDC*	pDC = CDC::FromHandle(hdc);
		CFont font;
		VERIFY(font.CreateFont(
		   46,                        // nHeight
		   0,                         // nWidth
		   0,                         // nEscapement
		   0,                         // nOrientation
		   100,                 // nWeight
		   FALSE,                     // bItalic
		   FALSE,                     // bUnderline
		   0,                         // cStrikeOut
		   EASTEUROPE_CHARSET,        // nCharSet
		   OUT_DEFAULT_PRECIS,        // nOutPrecision
		   CLIP_DEFAULT_PRECIS,       // nClipPrecision
		   ANTIALIASED_QUALITY,       // nQuality
		   VARIABLE_PITCH | FF_ROMAN, // nPitchAndFamily
		   TEXT("New")));       // lpszFacename

		CFont *pFont = pDC->SelectObject(&font);
		pDC->SetTextColor(g_TextColor);

		CRect crect (rect.left+80,rect.top, rect.right, rect.bottom);
		int height = pDC->DrawText(g_Caption, crect, DT_CALCRECT | DT_WORDBREAK);
		crect = rect;
		crect.top = (rect.bottom - height)/2;
		crect.left = 80; // Odsazen zleva pro vytvoření prostoru na ikonu

		unicodefixL(g_Caption);
		pDC->DrawText(g_Caption,&crect,DT_WORDBREAK);

		pDC->SelectObject(pFont);
		font.DeleteObject();
		EndPaint(hButton, &ps);

Připojen obrázek.

Připojen obrázek.

 

 

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