How should I create a custom form? I create a module like this:

&lt;?php
function mymodule_menu(){
    $items['mymodule/edit']=array(
        'title'=&gt;t('Edit item'),
        'type'=&gt;MENU_CALLBACK,
        'page callback'=&gt;'mymodule_edit_view',
    );
    return $items;
}

function mymodule_edit_view(){
    //...
    $html.='&lt;form '.$form_attr.'&gt;';
    //...
    $html.='&lt;/form&gt;';
    //...
    return $html;
}

function mymodule_form_alter(&amp;$form, $form_state, $form_id){
    //...
}


I create a form in mymodule_edit_view, but when I access mymodelu/edit, the drupal did not call mymodule_form_alter. I do not want to create the form with drupal_get_form(), So how should I create the form?
This shouldn't work as @Alex said, because you are not using Drupal's Form API. You should implement hook_form($node, &amp;$form_state), to create a form.

Sample code which creates a form with a single text field:

function MODULE_form() {
  $form = array();
  $form['title'] = array(
    '#type' =&gt; 'textfield', 
    '#title' =&gt; t('Field description goes here...'),
    '#required' =&gt; TRUE, 
  );
  return $form;
}