02.06.2003
|
|
Я понимаю, что программирование в .NET итак существенно снижает объём набиваемого кода за счёт всяких атрибутов и обширной библиотеки, сводя технические детали реализации многих вещей практически к минимуму. Но, тем не менее, хотелось бы большего... точнее ещё меньшего.
|
|
02.07.2001
|
|
28.12.2004
|
|
— Как прикрутить к моей программе преобразование из текста в голос?
— А как получить список установленных голосов? — А если нужно не проговаривать, а создавать из текста аудиофайл? |
|
11.10.2002
|
|
ПА>Есть у меня некая структура (struct).
ПА>Требуется создать файл, куда писать данные в виде этих структур. А также читать. А также перемещаться по файлу. ПА>Как это сделать? (Плиз с ма-аленьким примером или в какую сторону копать). |
|
18.11.2004
|
|
Хочу рассказать про несколько мнений о рефакторинге, кои в ходе моей профессиональной деятельности оказались мифами.
Миф 1. Рефакторинг не нужен или нужен очень редко. Любой код имеет определенный цикл жизни, который в итоге завершается тем, что из-за запутанности кода его проще оказывается полность переписать. Единственным известным мне способом продлить жизненный цикл существующего кода является его рефакторинг. Миф 2. Тщательное проектирование позволяет избавится от рефакторинга. Не существует идеальных архитекторов. Всегда будут ошибки проектирования. Следовательно — рефакторинг в ходе разработки это нормальный процесс, от которого не избавится. Но это еще не все — помимо ошибок проектирования всегда будет ситуация, когда структура кода не оптимальна из-за того что на момент проектирования существует некоторая неопределенность, от которой можно избавиться, только начав разработку. Миф 3. Рефакторинг это упрощение кода. На самом деле рефакторинг, как правило, не упрощает... |
|
21.09.2004
|
|
OE>>Как в ATL клиенте подписываться на события надо объяснять?
E>ДА! Ok, например в клиенте есть диалог, в котором нужно ловить события от COM-сервера:
добавляем туда следующие вещи (см. выделенное): [ccode] #import "MyCOM.dll" no_namespace, named_guids // произвольное число, удобно когда подключение идет к событиям сразу нескольких компонент #define IMYINTRFID 1 class CMainDlg : public CAxDialogImpl<CMainDlg> , public CDialogResize<CMainDlg> , public IDispEventImpl<IMYINTRFID, CMainDlg, &DIID___IMyIntrfEvent, &LIBID_MYCOMLib, 1, 0> { IMyIntrfPtr pMyIntrfPtr; // номер метода-события (0x1) смотрим в idl сервера или в // mycom.tli, который создаст #import BEGIN_SINK_MAP( CMainDlg ) SINK_ENTRY_EX( IMYINTRFID, DIID___IMyIntrfEvent, 0x1, OnFirstMethod ) END_SINK_MAP() |
|
03.06.2004
|
|
Здравствуйте, Carc, Вы писали:
C>Как получить текст горячей клавиши? C>Т.е. я юзую какую нить к примеру Ctrl+A у себя в приложении, причем есессно клавиша может меняться пользователем, как мне получить текст который отображать в меню (типа какой нить "Ctrl+A"), пробовал тот же GetKeyName но что я не смог разобраться.... хелп посмотреть исходники MFC-шного CHotKeyCtrl::GetHotKeyName(): [ccode] CString GetKeyName( UINT vk, BOOL fExtended ) { LONG lScan = MapVirtualKey( vk, 0 ) << 16; // if it's an extended key, add the extended flag if ( fExtended ) lScan |= 0x01000000L; TCHAR sz[ 100 ]; ::GetKeyNameText( lScan, sz, 100 ); sz[ 99 ] = 0; return CString( sz ); } CString GetHotKeyName( DWORD hk ) { static const TCHAR szPlus[] = _T( " + " ); CString strKeyName; WORD wCode; WORD wModifiers; wCode = LOBYTE( LOWORD( hk ) ); wModifiers = HIBYTE( LOWORD( hk ) ); if ( wCode != 0 || wModifiers != 0 ) { |
|
07.07.2004
|
|
Есть окно с Edit, нужно программно переключить язык ввода.
|
|
19.03.2002
|
|
Можно ли заменить стандартный хелп, который подключается при создании проекта в AppWizard-е на HTML хелп, так чтобы он работал как обычный хелп, и если можно то как.
|
|
16.10.2002
|
|
Есть стандартный ListView со стилями LVS_EX_GRIDLINES и LVS_REPORT (эмуляция Grid-a). Хочется сделать "зебру" — чередующиеся белые и серые полосы. Или выделять некоторые строки иным цветом (красным, если это что-то критическое), в зависимости от значения строки.
|
|