Ты слишком много пытаешся познать сразу. У ебя голова лопнет. ВЫучи потихоньки си и си-- а потом уже на апи. Джефри Рихтера читай
AsmGuru62 А не подскажите, есть ли все-таки такая функция, которая читает либо случайную строку, либо случайное слово?
Mark Такой функции я не знаю. Вот простой генератор чисел: http://en.wikipedia.org/wiki/Xorshift Получаешь число и затем: Код (Text): UINT random32 = <next value from XorShift128>; double _0_to_1 = (double) random32 / 4294967296.0; UINT linesInFile = <count the lines in your file>; UINT randomLine = (UINT) ((double) linesInFile * _0_to_1 + .5); FILE* f = fopen (".....", "rt"); CHAR line[256]; UINT index = 0; while (fgets (line, 256, f)) { ++index; if (index == randomLine) { // 'line' содержит случайную строку из файла break; } } fclose (f);
Sholar Так оно из файла не берет. А мне нада чтоб из файла брались слова, и по очереди записывались в следующий элемент массива.
До смерти надоела TextOut. Изучил DrawText. Можно поменять шрифт на нормальный? А то по умолчанию страшноватый.
Sholar Тупой вопрос конечно, на как в строке сделать перенос на следующую (ENTER)? \n тут не помогает. И чтоб эта конструкция отображалась в TextOut?
Не понял, ты выводиь текст АПИ`шкой TextOut? Так нет никакого переноса строки, ты сам указываешь координаты, куда нужно выводить текст.
Mark Со шрифтом немного сложнее. Вот так выглядит стандартный WM_PAINT: Код (Text): case WM_PAINT: { PAINTSTRUCT ps; HDC hDC = BeginPaint (hWnd, &ps); HFONT newFont; HGDIOBJ oldFont; LOGFONT lf = {0}; int iPixelsPerInch = GetDeviceCaps (hDC, LOGPIXELSY); int iPoints = 11; // <-- Font size in points lf.lfHeight = -MulDiv (iPoints, iPixelsPerInch, 72); lf.lfWeight = FW_NORMAL; lstrcpy (lf.lfFaceName, "Verdana"); newFont = CreateFontIndirect (&lf); oldFont = SelectObject (hDC, newFont); SetBkMode (hDC, TRANSPARENT); SetColor (hDC, RGB (255, 0, 0)); // <-- You can set any font color // // ... do whatever needed with DrawText, TextOut, etc. // SelectObject (hDC, oldFont); DeleteObject (newFont); EndPaint (hWnd, &ps); } break; http://msdn.microsoft.com/en-us/library/dd145037(v=vs.85).aspx Это если за один WM_PAINT использовать один шрифт. Если же надо менять шрифты, то там ещё больше кода, на каждый шрифт нужен свой вызов CreateFontIndirect, SelectObject и DeleteObject. Читай про SelectObject в MSDN - неверное его использование вызовет утечку ресурсов.