23.07.2001
IT
Windows Shell API включает функцию SHBrowseForFolder, которая отображает стандартный диалог, с помощью которого пользователь может выбрать нужный каталог. На самом деле, выбрать можно не только каталог, а любой объект Shell namespace, в том числе принтеры и компьютеры. Ниже приведён пример использования этой функции:
01.05.2005
Odi$$ey
Здравствуйте, <Аноним>, Вы писали:

А>На диалоги есть несколько групп radio button, как указать к какой группе какая относится?


Надо расставить их по-порядку в Tab Order (Ctrl-D при редактировании ресурса диалога). Назначаешь самому первому свойство Group = True, дальше в порядке Tab Order идет его группа, пока не встретится снова radio button с Group = True, с него начнется новая группа, ну и т.д.
24.04.2005
Odi$$ey
Здравствуйте, LordWin, Вы писали:

LW>Как имея Dll которая была написана для експорта в Visual Basic (стянул у автора а обратного адреса для мыла у него нету) перенести в Visual C++ 7 .NET ????

LW>Visual C++ 7 .NET говорит что .lib файл неподходит или же битый ....

1. берем проект, в котором надо использовать твою mdmxsvr.dll, подключаем h и lib, какие есть:

#include "mdmxsvr.h"
#pragma comment(lib, "mdmxsvr")

ага, lib-а не нравится:

mdmxsvr.lib : warning LNK4003: invalid library format; library ignored

2. Создаем свою (IMPDEF.exe из комплекта Borland C++ Builder):

impdef.exe mdmxsvr.def mdmxsvr.dll

получился mdmxsvr.def:

[ccode]
LIBRARY MDMXSVR.DLL

EXPORTS
MDMX_Close @4 ; MDMX_Close
MDMX_GetDMXTransmissions @3 ; MDMX_GetDMXTransmissions
MDMX_OpenSerialDevice @1 ; MDMX_OpenSerialDevice
02.06.2003
IT
Я понимаю, что программирование в .NET итак существенно снижает объём набиваемого кода за счёт всяких атрибутов и обширной библиотеки, сводя технические детали реализации многих вещей практически к минимуму. Но, тем не менее, хотелось бы большего... точнее ещё меньшего.
02.07.2001
IT
Alexander Shargin
28.12.2004
Odi$$ey
— Как прикрутить к моей программе преобразование из текста в голос?
— А как получить список установленных голосов?
— А если нужно не проговаривать, а создавать из текста аудиофайл?
11.10.2002
IT
ПА>Есть у меня некая структура (struct).
ПА>Требуется создать файл, куда писать данные в виде этих структур. А также читать. А также перемещаться по файлу.
ПА>Как это сделать? (Плиз с ма-аленьким примером или в какую сторону копать).
18.11.2004
AndrewVK
Хочу рассказать про несколько мнений о рефакторинге, кои в ходе моей профессиональной деятельности оказались мифами.

Миф 1. Рефакторинг не нужен или нужен очень редко.
Любой код имеет определенный цикл жизни, который в итоге завершается тем, что из-за запутанности кода его проще оказывается полность переписать. Единственным известным мне способом продлить жизненный цикл существующего кода является его рефакторинг.

Миф 2. Тщательное проектирование позволяет избавится от рефакторинга.
Не существует идеальных архитекторов. Всегда будут ошибки проектирования. Следовательно — рефакторинг в ходе разработки это нормальный процесс, от которого не избавится. Но это еще не все — помимо ошибок проектирования всегда будет ситуация, когда структура кода не оптимальна из-за того что на момент проектирования существует некоторая неопределенность, от которой можно избавиться, только начав разработку.

Миф 3. Рефакторинг это упрощение кода.
На самом деле рефакторинг, как правило, не упрощает...
21.09.2004
Odi$$ey
OE>>Как в ATL клиенте подписываться на события надо объяснять?
E>ДА!

Ok, например в клиенте есть диалог, в котором нужно ловить события от COM-сервера:

class CMainDlg : public CAxDialogImpl<CMainDlg>
               , public CDialogResize<CMainDlg>
{


добавляем туда следующие вещи (см. выделенное):

[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
Odi$$ey
Здравствуйте, 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 )
{
<  1  …  43  44  45  46  47  48  49  > rss