|
I have a trouble like below description :
My program has a dll file and a server application
in the mydll.dll, I want to send a message to the server application.
The message is the keyboard message, for example, WM_CHAR. I want to send
a command of copying data in the server application. So, I need sending
the union keys of Ctrl + C, to copy the selected text of the server
application to the clipboard. However, I don't know how to do that.
Please, help me, point me to some pages or give me some intruction.
Thanks a lot.
|
|
|
|
|
vtalau wrote: So, I need sending
the union keys of Ctrl + C, to copy the selected text of the server
application to the clipboard. However, I don't know how to do that.
Use the |(OR) operator to combine two values.
For eg:
VK_CTRL|VK_C
Nibu thomas
Software Developer
|
|
|
|
|
I have a trouble like below description :
My program has a dll file and a server application
in the mydll.dll, I want to send a message to the server application.
The message has the wParam referring to a string. I wrote my code :
CString speak1;
....
LPTSTR str = (LPTSTR)malloc((speak1.GetLength()+1) * sizeof(TCHAR));
....//copy the data of the "speak1" to the "str"
::PostMessage(hMainWindow,WM_USER+1,(WPARAM)str,str.GetLength()+1);
free(str) ;
in my server application, I try to get the address of the string from the
wParam. However, I can't get the content.
Please, help me, point me to some pages or give me some intruction.
Thanks a lot.
|
|
|
|
|
vtalau wrote: ::PostMessage(hMainWindow,WM_USER+1,(WPARAM)str,str.GetLength()+1);
free(str) ;
Use SendMessage instead of PostMessage . Otherwise free(str) will get executed before the message is processed. As PostMessage does not wait for the message to be processed.
Nibu thomas
Software Developer
|
|
|
|
|
You need to be using new and delete instead of malloc() and free() . Otherwise, the CString object's constructor and destructor do not get called.
In addition, if you are going to use PostMessage() , you'll need to move delete to the server so that it can free the memory after it is done with it.
"Let us be thankful for the fools. But for them the rest of us could not succeed." - Mark Twain
"We will be known forever by the tracks we leave." - Native American Proverb
|
|
|
|
|
Hi
i have a dialog that contains a child dialog and some controls (one of them is "add" button).
initially the child dialog is empty, when the user presses add button i add some shape to the child dialog.
so after some addings i need to set scrollbar for it and to resize the child dialog without changing the size of the parent dialog.
can u help me?????
|
|
|
|
|
you need to scrollbar horz and vertz and also you need to
event WM_lbuttonmouse and mousemove and wheelmouse with events scroll
with these functions you can find your answer
and if you draw shapes in dialog I suggest use WM_PAINT
and maybe it is some helpful to you
http://www.codeproject.com/dialog/scrollablechilddialog.asp[^]
|
|
|
|
|
actually i am working on it now. am painting the shapes in wm_paint ,and i added the scroll bars
one thing is left: when the largest shape becomes bigger than the child dialog boundary, i am supposed to enlarge the child dialog with keeping the same size seen by the user (the view port) and without causing the onpaint to draw on the parent dialog.
thanks alot for your reply
|
|
|
|
|
how to save the value/string of CFlexgrid cells as a file onto hard disk?
|
|
|
|
|
I guess you will have to write them yourself. There are no inbuilt methods for this purpose AFAIK.
Nibu thomas
Software Developer
|
|
|
|
|
use the CFile class? and then read the value/string of every cells?
Is there any simple method?:->
|
|
|
|
|
:shrugs: Can't say.
Well I can suggest you this... I don't know how feasible this is...
Serialize(or write) the object into a file and then when you need it read back the object from file.
Nibu thomas
Software Developer
|
|
|
|
|
The flexgrid has option to save files as CSV. I did it over a year ago, so don't remember the details, but i do remmeber saving files as CSV from Flexgrid. Check the method listings in the help.
|
|
|
|
|
Check the SaveGrid method for FlexGrid,here is a quick look:
SaveGrid Method
Saves grid contents and format to a file.
Syntax
[form!]VSFlexGrid.SaveGrid FileName As String, SaveWhat As SaveLoadSettings, [ FixedCells As Boolean ]
Remarks
This method saves a grid to a binary or to a text file. The grid may be retrieved later with the LoadGrid method. Grids saved to text files may also be read by other programs, such as Microsoft Excel or Microsoft Word.
The parameters for the SaveGrid method are described below:
FileName As String
The name of the file to create, including the path. If a file with the same name already exists, it is overwritten.
SaveWhat As SaveLoadSettings
This parameter specifies what should be saved. Valid options are:
Constant
Value
Description
flexFileAll
0
Save all data and formatting information.
flexFileData
1
Save only the data, ignoring formatting information.
flexFileFormat
2
Save only the global formatting, ignoring the data.
flexFileCommaText
3
Save data to a comma-delimited text file.
flexFileTabText
4
Save data to a tab-delimited text file.
flexFileCustomText
5
Save data to a text file using the delimiters specified by the ClipSeparators property.
flexFileExcel
6
Save all data and formatting information to an Excel97 file. This filter does not support frozen color rows or columns.
Options As Variant (optional)
When saving and loading text files, this parameter allows you to specify whether fixed cells are saved and restored. The default is False, which means fixed cells are not saved or restored.
When saving and loading Excel files, this parameter allows you to specify the name or index of the sheet to be loaded, or the name of the sheet to be saved. If omitted, the first sheet is loaded.
The options for saving fixed rows, columns, and translated combo values include:
Constant
Value
Description
flexXLSaveFixedCells
3
Saves fixed cells.
flexXLSaveFixedRows
2
Saves fixed rows.
flexXLSaveFixedCols
1
Saves fixed columns.
flexXLSaveRaw
4
Saves raw (untranslated) data.
For example, the options can be written as:
fg.SaveGrid "book1.xls", flexFileExcel
fg.SaveGrid "book1.xls", flexFileExcel, "sheetName"
fg.SaveGrid "book1.xls", flexFileExcel, flexXLSaveFixedCells
fg.SaveGrid "book1.xls", flexFileExcel, flexXLSaveFixedRows
fg.SaveGrid "book1.xls", flexFileExcel, flexXLSaveFixedCols
fg.SaveGrid "book1.xls", flexFileExcel, flexXLSaveRaw
fg.SaveGrid "book1.xls", flexFileExcel, _
flexXLSaveFixedCells Or flexXLSaveRaw
Notes
|
|
|
|
|
Hi,
I have an MDI MFC VS2005 app. I added a dialog bar in resource view and changed the basze class from CDialog to CDialogBar.
I use following code to create the dialogbar.
Now it is created fine and it aligns at bottom as intended, but all the buttons on the dialogbar are disabled!!!.
What's going on here?
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
EnableDocking(CBRS_ALIGN_ANY);
m_launchbar.Create( this, IDD_LAUNCHBAR, CBRS_BOTTOM , IDD_LAUNCHBAR );
}
In addition to the above problem the OnShowWindow is fired only when exiting the app and never when the app is started.
IMPLEMENT_DYNAMIC(CLaunchbar, CDialogBar)
CLaunchbar::CLaunchbar(CWnd* pParent /*=NULL*/)
: CDialogBar()
{
}
CLaunchbar::~CLaunchbar()
{
}
void CLaunchbar::DoDataExchange(CDataExchange* pDX)
{
CDialogBar::DoDataExchange(pDX);
DDX_Control(pDX, IDC_LBREXITAPP, m_lbrExitApp);
}
BEGIN_MESSAGE_MAP(CLaunchbar, CDialogBar)
ON_WM_SHOWWINDOW( )
ON_BN_CLICKED(IDC_LBREXITAPP, &CLaunchbar::OnBnClickedLbrexitapp)
END_MESSAGE_MAP()
// CLaunchbar message handlers
void CLaunchbar::OnShowWindow( BOOL bShow, UINT nStatus )
{
}
void CLaunchbar::OnBnClickedLbrexitapp()
{
// TODO: Add your control notification handler code here
}
Any help please?
|
|
|
|
|
venadder wrote: Now it is created fine and it aligns at bottom as intended, but all the buttons on the dialogbar are disabled!!!.
What's going on here?
Write event handlers for the buttons.
Nibu thomas
Software Developer
|
|
|
|
|
already have event handlers for on click as folows:
public:
afx_msg void OnBnClickedLbrexitapp();
void CLaunchbar::OnBnClickedLbrexitapp()
{
// TODO: Add your control notification handler code here
}
|
|
|
|
|
you created button and declare function for buttons but
buttons are disable,right?
|
|
|
|
|
venadder wrote: void CLaunchbar::OnBnClickedLbrexitapp()
You must provide a message handler in the MainFrame class not in the DialogBar class.
Nibu thomas
Software Developer
|
|
|
|
|
Thanx for your input. I changed it from dialog bar to CDialog anywyas. I have much more control and flexibility that way. It's easy to position teh window even with CDialog.
But thanx for your help. I appreciate it.
|
|
|
|
|
venadder wrote: I changed it from dialog bar to CDialog anywyas. I have much more control and flexibility that way. It's easy to position teh window even with CDialog.
Why oh why!!!
Then what is the use of a Dialog bar!!!
You just have to provide a message handler for the button in the main frame class. That's all. Nothing more nothing less. Just like you would do for a toolbar button.
Nibu thomas
Software Developer
|
|
|
|
|
So I know you can do this with Windows... cuz I turn winamp all the way down and I can still hear other applications...
I want to be able to mute only my application... how can I do this?
Thanks!
|
|
|
|
|
chasetoys wrote: I want to be able to mute only my application... how can I do this?
You can't. Windows XP doesn't have per-application volume controls. Windows Vista will do, but not XP. Winamp does this by modifying the audio data it is sending to Windows.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
Ryan Binns wrote: Windows XP doesn't have per-application volume controls.
Yes there is!! I installed K-Lite, and there is "MediaPlayer Classic" which came from K-Lite installation. To change the volume of MediaPlayer Classic does not affect WinXp overall volume. (Windows MediaPlayer and RealPlayer do.)
Maxwell Chen
|
|
|
|
|
Maxwell Chen wrote: Yes there is!! I installed K-Lite, and there is "MediaPlayer Classic" which came from K-Lite installation. To change the volume of MediaPlayer Classic does not affect WinXp overall volume. (Windows MediaPlayer and RealPlayer do.)
What Media Player Classic does is process the audio before it sends it to Windows to change its volume. Windows XP does not have individual volume controls per application - that is a new feature coming with Windows Vista.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|