|
Hi all,
Is it Possible to stop the resizing of a Dialog,from inside the "OnSize" event.
Depening on the cx,CY values,I would like the dialog to be resized or not.
If this is not the right place to the control the dialog size,where should I do it & how?
>>OnSize(UINT nType, int cx, int cy)
Thanks
|
|
|
|
|
If it is MFC, do not call Base class version of OnSize()(CDialog::OnSize()) method..
" Action without vision is only passing time,
Vision without action is merely day dreaming,
But vision with action can change the world "
- Words from Nelson Mandela
Thanks & Regards,
Gopalakrishnan
|
|
|
|
|
Pazzuzu wrote:
Is it Possible to stop the resizing of a Dialog,from inside the "OnSize" event.
Nope!
you have to handle WM_GETMINMAXINFO for limiting size of the Dialog Box
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
|
Hi,
I need to block the key operations in the Menu. I have a menu in the button click( Using CMenu -> TrackPopupMenu ).When I click keys in the key bord, it focus to the menu item of the pressed key begins with that letter.
Eg If presss "F", It will focus to "File" menu..
How I can Block this
Thanks in advance
Shiju
shijuck
|
|
|
|
|
shijuck wrote:
Eg If presss "F", It will focus to "File" menu..
How I can Block this
This would seem counterintuitive as to how most Windows applications behave. Is that your intent?
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
How to add a open door button that when I click on the button, it will send a "open door" message?
|
|
|
|
|
Tsaejen wrote:
open door button that when I click on the button, it will send a "open door" message
I am afraid, I don't understand your problem, could you repharse your problem.... thanks
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
I have designed a dialog that have some button and some of the button I want it to be send a "open door" message when I click on that button. Which mean the button can send a message hen I click on the button. And the message send must same with the label of the button.
|
|
|
|
|
I assume you wan't to eject the CD/DVD. If that's the case, use this:
BOOL ejectDisk(void)
{
char Drive[MAX_PATH];
HANDLE hDrive = INVALID_HANDLE_VALUE;
DWORD dwErr;
BOOL bRetVal = TRUE;
DWORD dwDummy;
// m_drive is a char, containing the drive letter for the unit you want to eject.
// I.e. char m_drive = 'G';
sprintf(Drive,"\\\\.\\%c:", m_drive);
hDrive = CreateFile(Drive, GENERIC_READ,
FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING,
FILE_ATTRIBUTE_NORMAL, NULL);
dwErr = GetLastError();
if(hDrive != INVALID_HANDLE_VALUE && dwErr == NO_ERROR) {
// Open OK, issue the eject command.
bRetVal = DeviceIoControl(hDrive, IOCTL_DISK_EJECT_MEDIA, NULL,
0, NULL, 0, &dwDummy, NULL);
}
else {
// Error at opening of the drive.
bRetVal = FALSE;
}
if(hDrive != INVALID_HANDLE_VALUE) CloseHandle(hDrive);
return bRetVal;
}
You need ntddstor.h from the DDK. That's where IOCTL_DISK_EJECT_MEDIA is defined.
|
|
|
|
|
If kakan has interpreted your request correctly, there's also this:
MCI_OPEN_PARMS mciOpenParms;
MCI_SET_PARMS mciSetParms;
DWORD dwResult;
mciOpenParms.lpstrDeviceType = (LPCSTR) MCI_DEVTYPE_CD_AUDIO;
dwResult = mciSendCommand(NULL, MCI_OPEN, MCI_WAIT | MCI_OPEN_TYPE | MCI_OPEN_TYPE_ID,
(DWORD) ((LPMCI_OPEN_PARMS) &mciOpenParms));
if (0 == dwResult)
{
dwResult = mciSendCommand(mciOpenParms.wDeviceID, MCI_SET, MCI_SET_DOOR_OPEN,
(DWORD) ((LPMCI_SET_PARMS) &mciSetParms));
}
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
-- modifed at 10:08 Thursday 25th August, 2005
|
|
|
|
|
Hi all,
Is there a way to check whether the Hardware Acceleration under settings/troubleshotting tab,is ON or OFF through program.
Kindly help me on this.
thanking you,
ashwath
|
|
|
|
|
ashwath2005 wrote:
...settings/troubleshotting tab...
Where is this at?
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
This tab is present when you right click on the desktop.
|
|
|
|
|
Sorry,a dialog box appears when u right click on the desktop and choose properties.In that select "settings" tab and then select the "troubleshooting tab.In that u can see "Hardware Acceleration" slider bar.
|
|
|
|
|
Sorry,
a dialog box appears when u right click on the desktop and choose properties.In that select "settings" tab and then select the"Advanced" button and in that select "troubleshooting tab.In that u can see "Hardware Acceleration" slider bar.
|
|
|
|
|
On my Windows 2000 machine, it's in the HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\et4000\Device0\Acceleration.Level registry value. A value of 0 indicates full acceleration and a value of 5 indicates no acceleration.
"One must learn from the bite of the fire to leave it alone." - Native American Proverb
|
|
|
|
|
Hello all,
How can I customize the default border of a window to my own color or style?
Is there any way for this rather than using OnNcPaint() itself?
Thanks in advance!
|
|
|
|
|
hi all,
I am using the below code to print "a test page".
BOOL bRet;
bRet=SHInvokePrinterCommand(NULL,PRINTACTION_TESTPAGE,_T("HP LaserJet 4050 Series PCL"),"",1);
But it is not printing the test page.I have checked the printer name ,it is correct.Can anyone help me to print a test page programmatically.
Is there any other method i can use to print a test page programmatically.
Please let me know.
|
|
|
|
|
Guys.
i suppose to write a program using vc++ to get the status from a PLC.. using tcp/ip.. i got a sample program of a chat channel.. this is the following code for the dialog... THE THING I NEED HELP IS... i add a button2 and i want it to sent a hello immendiatly upon pressing.. but i dont know how.. help pls..
#include "stdafx.h"
#include "ChatClient.h"
#include "ChatClientDlg.h"
#include "utility.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CAboutDlg dialog used for App About
class CAboutDlg : public CDialog
{
public:
CAboutDlg();
// Dialog Data
//{{AFX_DATA(CAboutDlg)
enum { IDD = IDD_ABOUTBOX };
//}}AFX_DATA
// ClassWizard generated virtual function overrides
//{{AFX_VIRTUAL(CAboutDlg)
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support
//}}AFX_VIRTUAL
// Implementation
protected:
//{{AFX_MSG(CAboutDlg)
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
CAboutDlg::CAboutDlg() : CDialog(CAboutDlg::IDD)
{
//{{AFX_DATA_INIT(CAboutDlg)
//}}AFX_DATA_INIT
}
void CAboutDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CAboutDlg)
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CAboutDlg, CDialog)
//{{AFX_MSG_MAP(CAboutDlg)
// No message handlers
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChatClientDlg dialog
CChatClientDlg::CChatClientDlg(CWnd* pParent /*=NULL*/)
: CDialog(CChatClientDlg::IDD, pParent)
{
//{{AFX_DATA_INIT(CChatClientDlg)
m_ChangeOfIp = _T("");
//}}AFX_DATA_INIT
// Note that LoadIcon does not require a subsequent DestroyIcon in Win32
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CChatClientDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
//{{AFX_DATA_MAP(CChatClientDlg)
DDX_Control(pDX, IDC_LSTUSERS, m_CurrentUsers);
DDX_Control(pDX, IDC_EDTINPUT, m_edtInput);
DDX_Control(pDX, IDC_EDTSHOWUP, m_edtShowUp);
DDX_Control(pDX, IDC_EDTLOGIN, m_edtLogin);
DDX_Text(pDX, IDC_ChangeIp, m_ChangeOfIp);
//}}AFX_DATA_MAP
}
BEGIN_MESSAGE_MAP(CChatClientDlg, CDialog)
//{{AFX_MSG_MAP(CChatClientDlg)
ON_WM_SYSCOMMAND()
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDC_LOGIN, OnLogin)
ON_BN_CLICKED(IDC_SEND, OnSend)
ON_WM_CLOSE()
ON_BN_CLICKED(IDC_BUTTON2, OnButton2)
//}}AFX_MSG_MAP
ON_MESSAGE(WM_ERRORMSG,OnErrorMsg)
ON_MESSAGE(WM_LISTMSG,OnListMsg)
ON_MESSAGE(WM_SHOWMSG,OnShowMsg)
ON_MESSAGE(WM_DELEMSG,OnDeleMsg)
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
// CChatClientDlg message handlers
BOOL CChatClientDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// Add "About..." menu item to system menu.
// IDM_ABOUTBOX must be in the system command range.
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
// Set the icon for this dialog. The framework does this automatically
// when the application's main window is not a dialog
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
((CButton*)GetDlgItem(IDC_LOGIN))->EnableWindow(FALSE);
m_edtLogin.EnableWindow(FALSE);
m_edtInput.EnableWindow(FALSE);
m_edtShowUp.SetReadOnly();
bLogined = FALSE;
ConnectServer();
return TRUE; // return TRUE unless you set the focus to a control
}
void CChatClientDlg::OnSysCommand(UINT nID, LPARAM lParam)
{
if ((nID & 0xFFF0) == IDM_ABOUTBOX)
{
CAboutDlg dlgAbout;
dlgAbout.DoModal();
}
else
{
CDialog::OnSysCommand(nID, lParam);
}
}
// If you add a minimize button to your dialog, you will need the code below
// to draw the icon. For MFC applications using the document/view model,
// this is automatically done for you by the framework.
void CChatClientDlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // device context for painting
SendMessage(WM_ICONERASEBKGND, (WPARAM) dc.GetSafeHdc(), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialog::OnPaint();
}
}
// The system calls this to obtain the cursor to display while the user drags
// the minimized window.
HCURSOR CChatClientDlg::OnQueryDragIcon()
{
return (HCURSOR) m_hIcon;
}
void CChatClientDlg::OnLogin()
{
// TODO: Add your control notification handler code here
//clear all the message in the status bar
((CStatic*)GetDlgItem(IDC_MESSAGEBAR))->SetWindowText("");
CString str;
m_edtLogin.GetWindowText(str);
//if the login name is empty,do nothing
if(str.IsEmpty()){
//output remiander message in the status bar
((CStatic*)GetDlgItem(IDC_MESSAGEBAR))->SetWindowText("You must login with some name!");
return;
}
//connected,begin to launch the worker thread
if(g_bConnected){
if(g_cRequest!=NULL){
delete[] g_cRequest;
}
g_cRequest = new char[MAXLINELENGTH];
FormRequest(&g_cRequest,"NAME",str.GetBuffer(str.GetLength()));
((CButton*)GetDlgItem(IDC_LOGIN))->EnableWindow(FALSE);
m_edtLogin.EnableWindow(FALSE);
m_edtInput.EnableWindow(TRUE);
g_sClient.Write(g_cRequest,strlen(g_cRequest),10);
AfxBeginThread(ClientThreadProc,GetSafeHwnd());
bLogined = TRUE;
}
}
void CChatClientDlg::OnSend()
{
// TODO: Add your control notification handler code here
if(g_bConnected){
if(g_cRequest!=NULL){
delete[] g_cRequest;
}
g_cRequest = new char[MAXLINELENGTH];
CString str;
m_edtInput.GetWindowText(str);
if(str.IsEmpty())
return;
FormRequest(&g_cRequest,"MESG",str.GetBuffer(str.GetLength()));
g_sClient.Write(g_cRequest,strlen(g_cRequest),10);
m_edtInput.SetWindowText("");
}
}
void CChatClientDlg::OnErrorMsg(WPARAM wParam,LPARAM lParam)
{
if(lParam!=0){ //receiving the ERROR message
if(strcmp((char*)lParam,"ERRO")==0){
m_edtInput.EnableWindow(FALSE);
m_edtLogin.EnableWindow(TRUE);
m_edtLogin.SetWindowText("");
((CButton*)GetDlgItem(IDC_LOGIN))->EnableWindow(TRUE);
bLogined = FALSE;
}
}
((CStatic*)GetDlgItem(IDC_MESSAGEBAR))->SetWindowText("");
LPCTSTR str = (LPCTSTR)(LPSTR)wParam;
((CStatic*)GetDlgItem(IDC_MESSAGEBAR))->SetWindowText(str);
}
void CChatClientDlg::OnListMsg(WPARAM wParam)
{
CString str = (CString)(LPCTSTR)(LPSTR)wParam;
int n=0;
do{
n = str.Find(':');
if(n==-1){
m_CurrentUsers.AddString(str);
break;
}
CString str1 = str.Left(n);
CString str2 = str.Right(str.GetLength()-n-1);
m_CurrentUsers.AddString(str1);
str = str2;
}while(TRUE);
}
void CChatClientDlg::OnShowMsg(WPARAM wParam)
{
CString str = (LPCTSTR)(LPSTR)wParam;
int nSel = m_edtShowUp.GetWindowTextLength();
m_edtShowUp.SetSel(nSel, nSel);
str += "\r\n";
m_edtShowUp.ReplaceSel(str);
}
void CChatClientDlg::OnDeleMsg(WPARAM wParam)
{
LPCTSTR str = (LPCTSTR)(LPSTR)wParam;
int index = m_CurrentUsers.FindString(-1,str);
m_CurrentUsers.DeleteString(index);
}
BOOL CChatClientDlg::PreTranslateMessage(MSG* pMsg)
{
// TODO: Add your specialized code here and/or call the base class
if((pMsg->message == WM_KEYDOWN)&&(pMsg->wParam == VK_RETURN)){
OnSend();
return TRUE;
}
return CDialog::PreTranslateMessage(pMsg);
}
void CChatClientDlg::OnClose()
{
// TODO: Add your message handler code here and/or call default
CString str;
m_edtLogin.GetWindowText(str);
if(!str.IsEmpty()&&bLogined){
if(g_cRequest!=NULL){
delete[] g_cRequest;
}
g_cRequest = new char[MAXLINELENGTH];
//sending the KILL message to the server
//so that the server can inform other clients to delete this guy
if(!g_bServerClosed){
FormRequest(&g_cRequest,"KILL",(LPSTR)(LPCTSTR)str);
g_sClient.Write(g_cRequest,strlen(g_cRequest),10);
//get out of the dead loop in the worker thread
g_eventKill.SetEvent();
}
delete[] g_cRequest;
}
CDialog::OnClose();
}
void CChatClientDlg::ConnectServer()
{
ASSERT(g_bConnected == FALSE);
CSockAddr saServer, saClient;
try {
g_sClient.Create();
if(g_strServerIP.IsEmpty()) {
saServer = CBlockingSocket::GetHostByName(g_strServerName, g_nPort);
}
else {
saServer = CSockAddr(g_strServerIP, g_nPort);
}
((CStatic*)GetDlgItem(IDC_MESSAGEBAR))->SetWindowText("Connecting...");
g_sClient.Connect(saServer);
g_bServerClosed = FALSE;
((CStatic*)GetDlgItem(IDC_MESSAGEBAR))->SetWindowText("Connection established.Pls log on with a user name.");
g_bConnected = TRUE;
((CButton*)GetDlgItem(IDC_LOGIN))->EnableWindow(TRUE);
m_edtLogin.EnableWindow(TRUE);
}
catch(CBlockingSocketException* e) {
LogBlockingSocketException((HWND)m_hWnd, "CLIENT:", e);
m_edtLogin.SetWindowText("");
m_edtLogin.SetFocus();
g_sClient.Close();
g_sClient.Cleanup();
e->Delete();
}
}
void CChatClientDlg::OnButton2()
{
// TODO: Add your control notification handler code here
}
|
|
|
|
|
That's nice ! Hope you'll enjoy it.
Hint: if you don't want some stupid answers like this one, post specific questions. Dude, we won't do the job for you.
[EDIT] Ok, thanks for providing more informations but now my post looks at a little bit ridiculous
|
|
|
|
|
|
What do you mean? Are you crazy?
" Action without vision is only passing time,
Vision without action is merely day dreaming,
But vision with action can change the world "
- Words from Nelson Mandela
Thanks & Regards,
Gopalakrishnan
|
|
|
|
|
MailtoGops wrote:
What do you mean? Are you crazy?
May be!!!! that's why, he behaving like that..................
"Opinions are neither right nor wrong. I cannot change your opinion. I can, however, change what influences your opinion." - David Crow
cheers,
Alok Gupta
VC Forum Q&A :- I/ IV
|
|
|
|
|
I am extremely sorry for this.I had a problem posting the message due to login problems.I just wanted to check whether i was able to post a message or not.
|
|
|
|
|